我有一个简单的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有队列吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)