前段时间,我能够拥有2个广播接收器,一个在我的清单中声明,另一个在我的活动中声明。 就像这里:What is the best way to handle callback from IntentService
但是,由于我已经更改了LocalBroadcastReceiver,并使用sendBroadcast方法更改了sendOrderedBroadcast,因此只有在activity中注册的那个才接收广播。我已经读过localbroadcastreceiver无法在清单中注册。
那么如何唤醒未在活动中注册的广播接收者?
答案 0 :(得分:0)
我找到了自己的答案,所以我会给那些感兴趣的人做出回应。
我有两个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只发送非敏感数据。这是我现在得到的最佳解决方案。