gpt4 book ai didi

android - 在 Activity 的生命周期变化期间接收广播

转载 作者:行者123 更新时间:2023-11-30 01:45:57 26 4
gpt4 key购买 nike

假设我有一个Activity。在其 onCreate 生命周期回调中,我创建了一个 BroadcastReceiver 对象,方法是将其实现为匿名类,并将一些代码放入其 onReceive 回调中,该回调需要 ActivityContext 在被调用时显示 Toast 消息。在 ActivityonResume 回调中,我注册了 BroadcastReceiver,在 onPause 中,我注销了它,因为它包含的代码需要 ActivityContext,如果 Activity 正在经历破坏过程,即方向改变,它可能不可用。这意味着如果某些东西,即 IntentService 在未注册时为 BroadcastReceiver 广播了一个 Intent(无论多短,但它仍然会发生) ,Intent 将永远不会被传递,处理它的适当操作也永远不会发生。所以用户可能会错过一些重要信息(通知注册成功的消息,警告出现问题等)我说得对吗?这种情况是否真的会发生?如何预防?如何确保无论应用程序的某个部分何时触发 BroadcastReceiver 都会接收到广播?

最佳答案

创建 MyBroadcastReceiver 扩展 BroadcastReceiver(当然 :D)并使用适当的 Intent 过滤器操作在 list 中注册它。然后在 onReceive() 中,您将可以访问 Application's Context。请记住,即使您的应用已关闭,onReceive() 也会被触发(例如,如果您的操作是 Intent.ACTION_SCREEN_OFF)。这取决于您要在该接收器中执行的操作...还可以查看 EventBus https://github.com/greenrobot/EventBus如果您必须在您的应用中发送事件。

关于android - 在 Activity 的生命周期变化期间接收广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33725120/

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