通过应用上下文注册广播接收器

时间:2016-07-15 23:29:16

标签: java android broadcastreceiver handler

我的应用程序类主要处理当前活动的上下文和其他内容(比如显示toast,对话等)。 我正在使用我的应用程序类的另一件事是注册广播接收器。不是通过活动的上下文,而是应用程序的。 我想知道的是: 广播接收器会阻止我的UI(Activity的)线程吗? (我通过应用程序调用接收器,所以会有什么不同吗?) 此外,还有一个选项,我可以通过Handler(从应用程序上下文)注册我的接收器。我应该这样做吗?或者是否有其他方法可用,这不会阻止我的主线程? 谢谢。

1 个答案:

答案 0 :(得分:0)

BroadcastReceiverOnReceive()总是在其进程的主线程中调用,除非您明确要求使用[registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)](https://developer.android.com/reference/android/content/Context.html#registerReceiver(android.content.BroadcastReceiver,android.content在不同的线程上调度它.IntentFilter,java.lang.String,android.os.Handler))。

当它在主线程上运行时,你永远不应该在其中执行长时间运行的操作(在考虑阻塞接收器和被杀死的候选者之前,系统允许超时10秒)。您无法在onReceive()

的实施中启动弹出式对话框