我想根据系统广播的多个意图启用/禁用警报,例如电池电量低,启用飞行模式,禁用wifi。
我计划在清单中注册所需的意图,并在BroadcastReceiver
中考虑它们,并根据收到的意图设置警报。
如果只广播其中一个意图,我怎样才能最好地同时考虑注册意图所指示的所有条件?
例如:广播“电池正常”意图,在这种情况下,我通常会再次启用警报,但如果启用飞行模式,我不想启用它。
我正在考虑保持每个条件的状态更新,即共享首选项,但它似乎根本不是一个干净的解决方案。
有些意图是粘性的,因此可以随时获取,但由于无法在BroadcastReceiver
中注册广播意图,我似乎无法获得其他意图的状态他们被发送了。
有什么建议吗?
答案 0 :(得分:0)
如果我的问题正确,可能你正在寻找这个问题 您可以注册多个这样的意图
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new Receiver(getApplicationContext());
registerReceiver(mReceiver, filter);
并且在接收者中,您可以测试现在播放的内容,如
public void onReceive(Context arg0, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
}
else if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
}