Android:BroadcastManager有队列吗?

Android:BroadcastManager有队列吗?,第1张

概述我有一个简单的BroadcastReceiver,我在我的Activity的onResume方法中设置.@OverrideprotectedvoidonResume(){super.onResume();LocalBroadcastManager.getInstance(this).registerReceiver(mNotificationReceiver,newIntentFilter(QuickstartPreferences.NEW_NO

我有一个简单的broadcastReceiver,我在我的Activity的onResume方法中设置.

@OverrIDeprotected voID onResume() {    super.onResume();    LocalbroadcastManager.getInstance(this).registerReceiver(mNotificationReceiver, new IntentFilter(QuickstartPreferences.NEW_NOTIFICATION));}

我在onPause上取消注册接收器:

@OverrIDeprotected 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未打开时维护队列来存储广播的消息?

解决方法:

Localbroadcast已排队但未保留.在您的活动onPause()中,您注册了未注册的接收器,因此您无法接收进一步的广播. sendbroadcast()将检查接收器,如果没有接收器,它将返回false以指示失败.

如果您希望始终获得通知,请尝试在应用程序级别而不是活动级别注册广播.

总结

以上是内存溢出为你收集整理的Android:BroadcastManager有队列吗?全部内容,希望文章能够帮你解决Android:BroadcastManager有队列吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存