android中如何区分UI主线程和子线程
由于android的UI主界面更新是单线程的,所以在子线程更新界面会提示错误,为此我做了相关实验。可能由于我对主线程和子线程的理解不当,未能实验出子线程更新的提示错误。望大虾帮忙。
我的具体做法为:键一个activity和一个线程thread。在activity中启动thread。我认为thread是子线程,所以在thread中添加了对界面更新的操作,最后没有报错。难道thread不是子线程?
[解决办法]
你使用了thread.start()方法了吗?还是直接在里面实现的runable接口,使用前者肯定是另起了个线程,后者可能还是在主线程里面,使用这个方法 Thread.currentThread().getId(),在log里面打印看线程id和主线程id是否相同,就知道你有没有创建新线程了,另外,在子线程里面是不能对ui进行操作的。可能是你没有创建新线程,所以没有报错。
[解决办法]
一楼正解,线程的标记就是ID
[解决办法]
在主线程中调用Thread.currentThread(),把主线程句柄保存下来。
在需要比较的地方,同样调用Thread.currentThread(),获取当前线程句柄,然后进行比较即可。
[解决办法]