UI线程
在应用启动时,系统会创建一个主线程(main Thread),这个主线程负责向UI线程中分发事件,所以main Thread 也就UI线程
所有刷新UI分为主线程刷新UI和子线程刷新UI
主线程刷新UI
系统不会为每个组件单独创建一个线程,在同一进程里,UI组件都会在UI线程当中被实例化,系统会给每一个组件的调用都从UI线程当中发出去。
耗时操作一般不能放在UI线程中,否则很容易出现ANR
子线程刷新UI
- 为了将一些诸如耗时操作等放在background中避免ANR就要涉及到在子线程中刷新UI了。
- android官方为子线程刷新UI提供了如下三种方式
- activity.runOnUiThread(Runnable)
- View.post(Runnable)
- View.postDelayed(Runnable,long)
自创实现子线程刷新UI
- 利用一个Handler来负责接收然后处理消息;
- 可以为一个子线程new一个Handler,也可以new一个Handler用于连接线程