gpt4 book ai didi

Android:BroadcastManager 有队列吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:09 27 4
gpt4 key购买 nike

我在 Activity 的 onResume 方法中设置了一个简单的 BroadcastReceiver。

@Override
protected void onResume() {
super.onResume();
LocalBroadcastManager.getInstance(this).registerReceiver(mNotificationReceiver, new IntentFilter(QuickstartPreferences.NEW_NOTIFICATION));

}

我在 onPause 上注销接收器:

@Override
protected void onPause() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mNotificationReceiver);
}

我有一个后台服务可以发送广播消息给这个:

Intent newNotification = new Intent(QuickstartPreferences.NEW_NOTIFICATION);
newNotification.putExtra("title", data.getString("title"));
LocalBroadcastManager.getInstance(this).sendBroadcast(newNotification);

我的问题是,如果后台服务在Activity没有打开的时候广播消息,现在Activity恢复的时候,是否能够接收到广播的消息呢?如果不是,如何在Activity未打开时维护一个队列来存储广播消息?

最佳答案

LocalBroadcast 已排队但未持久化。在您的 onPause() Activity 中,您取消注册了接收器,因此您无法接收进一步的广播。 sendBroadcast() 将检查接收器,如果没有接收器,它将返回 false 以指示失败。

如果您希望始终收到通知,请尝试在应用程序级别而不是 Activity 级别注册广播。

关于Android:BroadcastManager 有队列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34554370/

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