前段时间,我能够拥有 2 个广播接收器,一个在我的清单中声明,另一个在我的活动中声明。喜欢这里:处理来自 IntentService 的回调的最佳方法是什么
但是,由于我已更改为 LocalBroadcastReceiver,并使用 sendBroadcast 方法更改了 sendOrderedBroadcast,因此只有在活动中注册的那个只是接收广播。我读过localbroadcastreceiver 无法在清单中注册。
那么如何唤醒未在活动中注册的广播接收器?
前段时间,我能够拥有 2 个广播接收器,一个在我的清单中声明,另一个在我的活动中声明。喜欢这里:处理来自 IntentService 的回调的最佳方法是什么
但是,由于我已更改为 LocalBroadcastReceiver,并使用 sendBroadcast 方法更改了 sendOrderedBroadcast,因此只有在活动中注册的那个只是接收广播。我读过localbroadcastreceiver 无法在清单中注册。
那么如何唤醒未在活动中注册的广播接收器?
我找到了自己的答案,所以我给那些有兴趣的人回复。
我有两个 BroadcastReceiver 类,一个在应用程序唤醒时使用,具有:
ActivityBroadcastReceiver myReceiver = new ActivityBroadcastReceiver();
@Override
protected void onResume() {
LocalBroadcastManager.getInstance(this).registerReceiver(myReceiver, new IntentFilter("com.mybroadcast"));
super.onResume();
}
和
@Override
protected void onPause() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(myReceiver);
super.onPause();
}
在我的清单文件中:
<receiver
android:name="com.broadcastreceiver.NotificationBroadcastReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="com.mybroadcast" />
</intent-filter>
</receiver>
发送我的广播:
if(!LocalBroadcastManager.getInstance(context).sendBroadcast(broadcast))
context.sendBroadcast(broadcast);
我同意这样, context.sendBroadcast() ,每个人都可以收到我的广播,但在我的代码中,sendBroadcast 只发送不敏感的数据。这是我目前得到的最好的解决方案。