BroadcastReceiver的动态注册与解除注册,苦不得解。。。求助。。。
在Service派生类的onStart方法里构造BroadcastReceiver并注册,onDestroy方法里解除注册
public void onStart() { MyBroadcastReceiver mReceiver = new MyBroadcastReceiver(); IntentFilter inFilter = new IntentFilter(); inFilter.addAction(Intent.ACTION_TIME_TICK); // 我百度了一下,说getApplicationContext得到的是整个应用程序的上下文 // 而Activity.this仅仅是该Activity的上下文,两者不同 // 那意思是不是说,广播接收注册给了哪个Context,就要由哪个Context来解除注册? // BroadcastReceiver的onReceive函数有两个回调参数,Context和Intent // 这个Context参数又是谁的上下文?感觉越来越晦涩了! Context context = getApplicationContext(); context.registerReceiver(mReceiver, inFilter);}public void onDestroy() { // unregisterReceiver接收一个BroadcastReceiver实例做参数,是不是要重新构造一个? // 还是在注册和解除注册时都要传递同一个BroadcastReceiver实例? MyBroadcastReceiver mReceiver = new MyBroadcastReceiver(); Context context = getApplicationContext(); context.unregisterReceiver(mReceiver);}