利用服务动态注册广播
在ContextWrapper类中有一个方法registerReceiver(BroadcastReceiver receiver, IntentFilter filter)
动态注册电话reciver接受电话广播:使用内部类注册广播
该方法可以实现动态注册广播接受者
receiver = new ScreemRecevicer();IntentFilter filter = new IntentFilter();filter.addAction("android.intent.action.SCREEN_OFF");filter.addAction("android.intent.action.SCREEN_ON");registerReceiver(receiver, filter);
用法如上:一个在服务中动态注册接受屏幕锁定和打开广播的案例
动态注册电话reciver接受电话广播:使用内部类注册广播
//服务中的onCreate()public void onCreate() {//TODO 自定义广播内部类// TODO 自定义广播private class OutPhone extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {String phoneNum = getResultData();String adress = getAdress(phoneNum);getMyToast(adress);}}// TODO 注册广播OutPhone phone = new OutPhone();IntentFilter filter = new IntentFilter();filter.addAction("android.intent.action.NEW_OUTGOING_CALL");registerReceiver(phone, filter);super.onCreate();}

浙公网安备 33010602011771号