这听起来可能很愚蠢,但是。如果我关闭应用程序后注销了接收者的注册,我将无法接收到该BroadcastReceiver的意图,对吗?如果是这样,那会不会达到目的?
答案 0 :(得分:1)
如果我在关闭应用程序后注销了接收者的注册,我将无法接收到该BroadcastReceiver的意图吗?
是的,如果您通过unregisteReceiver()
取消了通过registerReceiver()
注册的接收器,则该接收器将不再接收广播。
如果那样的话,那不是会失败吗?
不是真的。
您似乎担心应用程序何时“关闭”。动词“已关闭”在这种情况下不是很具体,但是一旦您的应用程序的UI移到后台,您的过程就可以在任何时间点终止。当您的进程终止时,您在registerReceiver()
注册的所有接收者以及该过程中的所有其他内容都会消失。动态注册接收器仅在进程运行时有用。因此,无论您是否呼叫unregisterReceiver()
,当您的应用“关闭”时,您很快都将无法接收广播。
registerReceiver()
的主要替代方法是在清单中注册<receiver>
。但是,在现代版本的Android上,manifest-registered receivers cannot receive many broadcasts。