在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);
}我在做调试的时候,尝试停掉这个Service,结果报错Unable to stop service,究其缘由,仍未果
我觉得问题可能出在BroadcastReceiver的unregisterReceiver上面,也就是说Context不对号?这个Context好让人头疼啊!!麻烦大侠指点一下,小弟谢了!
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);
}我在做调试的时候,尝试停掉这个Service,结果报错Unable to stop service,究其缘由,仍未果
我觉得问题可能出在BroadcastReceiver的unregisterReceiver上面,也就是说Context不对号?这个Context好让人头疼啊!!麻烦大侠指点一下,小弟谢了!
解决方案 »
- Eclipse3.8.1+ADT21.1.0,AVD无法启动
- Android FMRadio 自动搜台问题
- 如何为onLongClick(View v)添加振动事件
- android布局问题
- ExpandableListView与ScrollView
- android 问题求救
- 设计一个程序用于创建,保存,显示联系人的一些信息
- 网页能访问servlet,android访问不了。求大神!!
- 华为3G模块E1750在我的Android4.1系统平板下怎么发短信??
- android Activity间传递数组问题!!空指针
- 安卓读取网页,没反应,上代码求解释
- 从没遇到的问题,装不了SDK,试了几天啦,还是不行,
getApplicationContext(),在那个组建中注册用那个Context即可,你可以试试。