从代码注册的广播接收器

时间:2011-09-26 15:05:52

标签: android screen broadcastreceiver

我从我的活动中注册onCreate的接收器

IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
BroadcastReceiver mReceiver = new ScreenOnOffReceiver();
registerReceiver(mReceiver, filter);

一切都运作良好,接收器得到意图,一切正常,直到我关闭活动。当我关闭活动时,该方法不再接收意图...

有人知道如何注册接收器。 。

注意:我没有取消注册接收器,但它以某种方式神奇地发生它只是停止正常工作。 。

2 个答案:

答案 0 :(得分:0)

在活动中注册广播接收器的想法是在活动开启时收到某些事件的通知(在onResume中注册接收器,在onPause中注销它)。

如果在活动未显示时需要广播接收器来处理事件,请在清单中注册广播接收器。

如果您需要以不同方式处理这两种情况,请使用有序广播。

答案 1 :(得分:0)

如果您希望始终接收消息,而不是创建自己的服务,并在onStartCommand方法中进行意图过滤,并在onDestroy中取消注册。

此处有更多详情http://developer.android.com/reference/android/app/Service.html