Caused by: java.lang.IllegalArgumentException:Receiver not registered: 解决办法
来源:互联网 发布:exe电子书制作软件 编辑:程序博客网 时间:2024/06/06 17:36
看到Receiver就确定是广播引起的啦。贴上问题代码:
直接创建一个Receiver对象
private BroadcastReceiver systemBR=new BroadcastReceiver() {
@Override
public void onReceive(Contextcontext, Intent intent) {
if (null!= intent) {
}
}
};
在onCreateView注册广播
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
IntentFilter filter = new IntentFilter();filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);filter.addAction(LoginManager.ACTION_LOGOUT);activity.registerReceiver(systemBR, filter);
}
在onDestroy注销广播
@Overridepublic void onDestroy() { super.onDestroy();
try {
if (null != systemBR) { unregisterReceiver(systemBR); } } catch (IllegalArgumentException e) { Lg.e(e); }}
类在还没registerReceiver执行ondestory中的 unregisterReceiver这情况是可能的,假如在onCreate有比较耗时的动作还没registerReceiver然后ondestory就会出现此情况,按照这思路BroadcastReceiver就不能在类初始化后就创建对象(比onCreate还之前)。修改后代码:
private BroadcastReceiver systemBR;
@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
IntentFilter filter = new IntentFilter();filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);filter.addAction(LoginManager.ACTION_LOGOUT);
systemBR = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (null != intent) {
} }};
activity.registerReceiver(systemBR, filter);
}
问题解决。
0 0
- Caused by: java.lang.IllegalArgumentException:Receiver not registered: 解决办法
- Android广播接收器注册问题:Caused by: java.lang.IllegalArgumentException: Receiver not registered
- Caused by: java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper
- [Android]Caused by: java.lang.IllegalArgumentException: Service not registered.md
- java.lang.IllegalArgumentException: Receiver not registered
- java.lang.IllegalArgumentException: Receiver not registered: null
- java.lang.IllegalArgumentException: Receiver not registered: null
- Android java.lang.IllegalArgumentException: Receiver not registered
- java.lang.IllegalArgumentException: Receiver not registered
- java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController$1@
- java.lang.IllegalArgumentException: Receiver not registered: android.widget.ZoomButtonsController
- 关闭WebView时报 java.lang.IllegalArgumentException: Receiver not registered:
- IllegalArgumentException: Receiver not registered
- Caused by: java.lang.IllegalArgumentException: Original must not be null
- Caused by: java.lang.IllegalArgumentException: Not an managed type: class
- Caused by: java.lang.IllegalArgumentException: Text may not be null
- java.lang.IllegalArgumentException: Service not registered
- 错误:java.lang.IllegalArgumentException: Service not registered
- ThinkPHP学习--语法学习
- Java-----隐藏手机号中间四位
- Hadoop 学习笔记六 分布式文件系统HDFS
- 遍历Map的四种方法
- 判断正方形
- Caused by: java.lang.IllegalArgumentException:Receiver not registered: 解决办法
- 安卓开发_intent的使用
- 从VC学习Android·序
- java集合中HashSet引起的内存泄漏问题
- 解决Cell底部分割线右移问题
- Javascript中extend方法的实现
- 贪心算法初始
- Java中内部类表现形式
- N 个骰子的点数