利用服务动态注册广播

在ContextWrapper类中有一个方法registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
该方法可以实现动态注册广播接受者
  1. receiver = new ScreemRecevicer();
  2. IntentFilter filter = new IntentFilter();
  3. filter.addAction("android.intent.action.SCREEN_OFF");
  4. filter.addAction("android.intent.action.SCREEN_ON");
  5. registerReceiver(receiver, filter);
用法如上:一个在服务中动态注册接受屏幕锁定和打开广播的案例

动态注册电话reciver接受电话广播:使用内部类注册广播
  1. //服务中的onCreate()
  2. public void onCreate() {
  3. //TODO 自定义广播内部类
  4. // TODO 自定义广播
  5. private class OutPhone extends BroadcastReceiver {
  6. @Override
  7. public void onReceive(Context context, Intent intent) {
  8. String phoneNum = getResultData();
  9. String adress = getAdress(phoneNum);
  10. getMyToast(adress);
  11. }
  12. }
  13. // TODO 注册广播
  14. OutPhone phone = new OutPhone();
  15. IntentFilter filter = new IntentFilter();
  16. filter.addAction("android.intent.action.NEW_OUTGOING_CALL");
  17. registerReceiver(phone, filter);
  18. super.onCreate();
  19. }






posted @ 2015-01-12 16:10  就不呵呵呵  阅读(256)  评论(0编辑  收藏  举报