android 的unregisterReceiver报错处理 提示“Receiver not registered”
2015-07-13 16:25
507 查看
使用广播时,有时注销广播会出现Receiver not registered的异常,导致程序崩溃。
出现的原因有可能五花八门,但是系统并没有提供方法让我们在注销广播时判断该广播是否注册。所以我们只能另辟蹊径的解决该问题了。
我的解决办法是:
if (homePressReceiver != null) {
try{
unregisterReceiver(homePressReceiver);
}catch(IllegalArgumentException e){
if (e.getMessage().contains("Receiver not registered")) {
// Ignore this exception. This is exactly what is desired
} else {
// unexpected, re-throw
throw e;
}
}
}
当然,也有可能是多重调用注销广播,所以写代码时要注意registerReceiver和 unregisterReceiver要成对出现!
出现的原因有可能五花八门,但是系统并没有提供方法让我们在注销广播时判断该广播是否注册。所以我们只能另辟蹊径的解决该问题了。
我的解决办法是:
if (homePressReceiver != null) {
try{
unregisterReceiver(homePressReceiver);
}catch(IllegalArgumentException e){
if (e.getMessage().contains("Receiver not registered")) {
// Ignore this exception. This is exactly what is desired
} else {
// unexpected, re-throw
throw e;
}
}
}
当然,也有可能是多重调用注销广播,所以写代码时要注意registerReceiver和 unregisterReceiver要成对出现!
相关文章推荐
- Android PullToRefresh 实战(ListView)
- Android存储方式的选择
- Android studio中Rendering Problems不能可视化操作的解决办法
- Android中dp、dip、px、sp之间的区别
- 史上最详细的Android Studio Gradle基础教程
- android中handler用法总结
- Android 同步代码块,synchronized加锁
- 41、Android中当数据库需要更新时我们该怎么办?
- android数据库升级的措辞
- Android 获取和设置屏幕亮度的模式和值
- 如何把默认壁纸改为动态壁纸
- 小玩Android布局中的weight(权重)
- Android控件——RadioButton和RadioGroup
- android 源码45个 分享
- android学习笔记(十)——音乐播放器的实现
- android studio 断点调试和高级调试
- Android无数据线调试方法
- DatePickerDialog简介
- MPAndroidChart绘制图表
- android 系统自带的图标集合