-
总纲显示查看全部
-
Callback 可以拦截收到的消息查看全部
-
target 其实就是handler自己,所以用massage.sendToTarget 和用handler.sendMessage效果相同查看全部
-
new Thread 中massage查看全部
-
handler的基本使用post()查看全部
-
为什么要用handler? 一定要使用吗?查看全部
-
什么是handler?有什么作用?查看全部
-
解决多线程并发的问题 对于我们的开发提供的方便 handle 的原理是什么 lopper theard hadle handle 封装消息的发送 looper 封装消息的载体查看全部
-
handle 是android给我们提供的一套用来更新ui的机制 也是一套消息处理的机制 可以发送消息亦可以通过他处理消息查看全部
-
handler是什么? 1、更新UI 2、消息处理(发送消息、处理消息)查看全部
-
Handler是什么? Handler是Android提供的一套用来更新UI的机制,也是一套消息处理机制,可以通过它发送消息,也可以通过它处理消息。 所有Activity生命周期回调的方法,都是通过handler机制去发送消息的,然后根据不同的消息(message)做相应的分支处理。例如发送一个消息给 Framework,告知需要调用onCreate()或onDestory()方法。实际上在 Framework 当中,Activity的交互大部分都是用AMS(Activity Manager Service)做处理的。整个应用程序的核心的一个类就是 Activity Thread,Activity Thread就是通过handler机制接收到 Activity Manager Service发送的有关Activity生命周期的管理的消息(比如启动)。 为什么要使用Handler? Android在设计的时候,就封装了一套消息的创建、传递、处理机制,如果不遵循这样的机制,就没有办法更新UI信息,并且会抛出异常信息。这样的机制便包含Handler机制。 我们需要把这些耗时的操作,放在一个子线程中,因为子线程涉及到UI更新,Android主线程是线程不安全的,也就是说,更新UI只能在主线程中更新,子线程中操作是危险的。这个时候,Handler就出现了。来解决这个复杂的问题 ,由于Handler运行在主线程中(UI线程中),它与子线程可以通过Message对象来传递数据, 这个时候,Handler就承担着接受子线程传过来的(子线程用sedMessage()方法传递)Message对象(里面包含数据),把这些消息放入主线程队列中,配合主线程进行更新UI。 Handler主要接受子线程发送的数据,并用此数据配合主线程更新UI。 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) ,主线程为管理界面中的UI控件,进行事件分发,比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文件的时候,你不能把这些操作放在主线程中,如果你放在主线程中的话,界面会出现假死现象,如果5秒钟还没有完成的话,会收到Android系统的一个错误提示 "强制关闭"。查看全部
-
ActivityThread-->main() -->Looper.prepareMainLooper() -->prepare(false)-->new Looper(false)-->new Looper{MessageQueue(false))查看全部
-
ActivityThread就是程序主线程,也就是ui线程查看全部
-
When posting or sending to a Handler, you can either allow the item to be processed as soon as the message queue is ready to do so, or specify a delay before it gets processed or absolute time for it to be processed. The latter two allow you to implement timeouts, ticks, and other timing-based behavior. When a process is created for your application, its main thread is dedicated to running a message queue that takes care of managing the top-level application objects (activities, broadcast receivers, etc) and any windows they create. You can create your own threads, and communicate back with the main application thread through a Handler. This is done by calling the same post or sendMessage methods as before, but from your new thread. The given Runnable or Message will then be scheduled in the Handler's message queue and processed when appropriate.查看全部
-
There are two main uses for a Handler: (1) to schedule messages and runnables to be executed as some point in the future; and (2) to enqueue an action to be performed on a different thread than your own.查看全部
举报
0/150
提交
取消