关于ZAKER 融媒体解决方案 合作 加入

Android 2.1:单个活动中的多个处理程序

CocoaChina 10-22

我在一个活动中有多个处理程序 . 我在主要活动的 onCreate ( ) 中创建了所有处理程序 . 我的理解是每个处理程序的 handleMessage ( ) 方法永远不会同时被调用 , 因为所有消息都放在同一个队列中 ( Activity 线程 MessageQueue ) . 因此 , 它们将按照放入队列的顺序执行 . 它们也将在主活动线程中执行 . 这个对吗 ?

public void onCreate ( ) {this.handler1 = new Handler ( ) {@Overridepublic void handleMessage ( Message msg ) { //operation 1 : some operation with instanceVariable1super.handleMessage ( msg ) ;}};this.handler2 = new Handler ( ) {@Overridepublic void handleMessage ( Message msg ) { //Operation 2: some operation with instanceVariable1super.handleMessage ( msg ) ;}};this.handler3 = new Handler ( ) {@Overridepublic void handleMessage ( Message msg ) { //Operation 3: some operation with instanceVariable1super.handleMessage ( msg ) ;}};}

最佳答案

从文档 " 当你创建一个新的 Handler, 它被绑定到创建它的线程的线程 / 消息队列 – 从那时起 , 它将消息和 runnables 传递给该消息队列并在它们到来时执行它们离开消息队列 ."

所以你是对的 , 它们将按照你在 UI 线程上排队的顺序运行 ( 因为你要在 onCreate 中创建它们 ) .

以上内容由"CocoaChina"上传发布 查看原文

觉得文章不错,微信扫描分享好友

扫码分享