为什么即使在应用关闭的情况下,我也想取消广播广播接收器的注册?

问题描述 投票:0回答:1

这听起来很傻,但是。如果我在关闭应用程序后注销了接收者的注册,那么我将无法接收到该BroadcastReceiver的意图吗?如果是这样的话,那不会破坏目的吗?

android android-studio background broadcastreceiver
1个回答
0
投票

如果关闭我的应用程序后取消注册接收者,我将无法接收该BroadcastReceiver的意图,对吗?

是,如果您通过unregisteReceiver()取消了通过registerReceiver()注册的接收器,则该接收器将不再接收广播。

如果是这样,那是否会失败?

不是。

您似乎担心应用程序何时“关闭”。动词“已关闭”在这种情况下不是很具体,但是一旦您的应用程序的UI移到后台,您的过程就可以在任何时间点终止。当过程终止时,您在registerReceiver()中注册的所有接收器以及该过程中的所有其他内容都将消失。动态注册接收器仅在进程运行时有用。因此,无论您是否呼叫unregisterReceiver(),当您的应用“关闭”时,您都将很快无法接收广播。

registerReceiver()的主要替代方法是在清单中注册<receiver>。但是,在现代版本的Android上,manifest-registered receivers cannot receive many broadcasts

© www.soinside.com 2019 - 2024. All rights reserved.