我对广播接收器和处理它的mainthread有疑问。
如果主线程正在进行一些计算(或者你可以说在构造函数或方法中执行代码)并且触发了广播接收器onReceive()?将挑选哪项任务
构造函数/方法将完成其执行,然后调用onReceive。 (这就是我的理解)
onReceive将首先触发
答案 0 :(得分:0)
构造函数/方法将完成其执行,然后调用onReceive 应该是答案,因为总是在主线程上调用BroadcastReceivers。
void onReceive(上下文上下文, 意图)。
当BroadcastReceiver接收到此方法时,将调用此方法 意图广播。在此期间,您可以使用其他方法 BroadcastReceiver查看/修改当前结果值。这个 方法总是在其进程的主线程内调用,除非 你明确要求在不同的线程上安排它 使用registerReceiver(BroadcastReceiver,IntentFilter,String, android.os.Handler)。
答案 1 :(得分:0)
你是对的......
1)首先执行主线程,然后只执行任何待处理的任务。
2)如果主线程花费太长时间来完成其任务,它只会给出exception
这样的东西:
应用程序" AndroidThreadDemo"没有回应。
请参阅this link了解更多信息..我相信它会对您有所帮助。