onReceived()方法在UI线程中运行,但是当app关闭时,UI线程也应该停止,为什么接收器可以运行?我无法理解。
答案 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