android中怎么区分UI主线程和子线程

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(),获取当前线程句柄,然后进行比较即可。
------解决方案--------------------
引用:
引用:

你使用了thread.start()方法了吗?还是直接在里面实现的runable接口,使用前者肯定是另起了个线程,后者可能还是在主线程里面,使用这个方法 Thread.currentThread().getId(),在log里面打印看线程id和主线程id是否相同,就知道你有没有创建新线程了,另外,在子线程里面是不能对ui进行操作的。……

应该说是主线程调用了onCreat()方法!
------解决方案--------------------
引用:
引用:

你使用了thread.start()方法了吗?还是直接在里面实现的runable接口,使用前者肯定是另起了个线程,后者可能还是在主线程里面,使用这个方法 Thread.currentThread().getId(),在log里面打印看线程id和主线程id是否相同,就知道你有没有创建新线程了,另外,在子线程里面是不能对ui进行操作的。……
handle机制就是为了避免子线程操作ui而设计的。因为handle里面的ui操作是在主线程的,楼主如果需要一个简单的线程操作,可以考虑AsyncTask。这个比较简单实现。
------解决方案--------------------
我的理解是主线程调用oncreate()等一系列函数创建了activity的界面
------解决方案--------------------
可以把你测试的代码贴出来大家讨论下,更容易说明问题
------解决方案--------------------
学习了。。mark