1.Android中多线程应用机制?
1)主线程负责执行UI操作(用户输入,事件的处理,UI的更新)
2)工作线程负责执行耗时操作(例如下载,联网,访问数据库)
Android中这样对线程分工的目的是尽量不要阻塞主线程,让主线程更好的服务于用户,给用户一种更好的应用体验。
FAQ?
Android中有这样的分工以后,如何在不阻塞主线程(长时间阻塞)的情况下实现线程之间的通讯呢?
借助消息模型
2.Android中多线程应用消息模型概述?
Android消息模型是在尽量不阻塞主线程的情况下推出的一种线程通讯机制,此机制的实现主要是借助线程之间消息的传递。例如
工作线程执行完耗时操作可以发一个消息给主线程,让主线程执行UI的更新操作,这个过程终主线程无需等待。
此消息模型中同样提供了一种任务轮询机制,让线程不断的去迭代任务队列,延长此线程的生命周期,
让此线程可以不断的执行多个任务,从而可以避免多个线程对象的创建,销毁带给系统的性能开销
3.Android中多线程消息模型相关API?
1)Message(消息对象,封装数据)
2)MessageQueue(消息队列,存储多个消息对象)
3)Looper(消息迭代器,负责从消息队列取消息)
4)Handler(消息处理器,负责发送,处理消息对象)