gpt4 book ai didi

Android 在下次应用加载时注销广播接收器

转载 作者:太空狗 更新时间:2023-10-29 12:40:56 27 4
gpt4 key购买 nike

我有一种感觉,我已经知道了这个问题的答案,但我不确定。我正在使用广播接收器拦截传入的 SMS 消息。

我使用 registerReceiver 函数以典型方式注册接收器,当您取消注册接收器时,您使用函数 unregisterReceiver 函数。我保留一个全局广播变量以根据需要加载和卸载接收器。

如果应用程序关闭,就像用户实际关闭应用程序一样,我没有在 onDestroy 方法中注销接收器,我知道这是不好的做法,是否有办法在下次加载应用程序时注销接收器?我可以创建该广播接收器的另一个实例,然后取消注册吗?

最佳答案

If the app closes

您可以说您的用户界面是否在前台。您可以说您的应用进程在前台、后台或已终止。

尚不清楚“关闭”等同于什么。

like the user actually closes the application

用户可以将应用的 UI 和进程移至后台(例如,按 HOME)。用户可以破坏应用程序的 UI 并将其进程移至后台(例如,从上次运行的 Activity 中按 BACK)。用户可以终止应用程序的后台进程(例如,将应用程序从最近任务列表中滑出)。用户可以强制停止应用(例如,在“设置”中按下应用的“强制停止”按钮)。

尚不清楚“用户实际关闭应用程序”等同于什么。

would there be a way to unregister the receiver the next time the app loads?

要么您有对您的 BroadcastReceiver 对象的引用,要么没有。如果这样做,请在某些 Context 上调用 unregisterReceiver(),并传入该 BroadcastReceiver 实例。如果您没有 BroadcastReceiver 实例,则无法注销接收器。如果您的进程在您注册接收者和现在之间终止,则该接收者不存在并且实际上未注册。

关于Android 在下次应用加载时注销广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063301/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com