为什么BroadcastReciever可以在应用关闭时收到意图?

时间:2016-05-30 15:39:19

标签: java android broadcastreceiver broadcast

onReceived()方法在UI线程中运行,但是当app关闭时,UI线程也应该停止,为什么接收器可以运行?我无法理解。

3 个答案:

答案 0 :(得分:1)

我假设您将BroadcastReceiver放入清单中。如果您这样做,它将始终处于活动状态。 如果您希望将其与活动联系起来,那么您可能需要在Activity内声明接收方,并在registerReceiver / unregisterReceiver <中使用onResume / onPause / p>

答案 1 :(得分:1)

因为当您在应用中注册广播接收器时,它也会在Android中注册。当意图发送到您的应用时,Android会提升您的应用并调用从您的课程接收的回拨方法。即使您的应用处于离线状态,也会调用它

答案 2 :(得分:1)

BroadcastReceiver是一个应用程序组件

与文档一样: 应用程序组件是Android应用程序的基本构建块。每个组件都是系统可以通过其输入您的应用程序的不同点。

更具体地说 广播接收器是响应系统范围广播公告的组件。

通过设计,即使应用程序关闭,BroadcastReceiver也会回答广播通知。

如果您不需要响应申请公告,可以使用绑定到您的应用程序进程的 LocalBroadcastManager https://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

有关应用组件的更多信息:https://developer.android.com/guide/components/fundamentals.html