文档章节

java.lang.IllegalArgumentException: Receiver not registered

luhang
 luhang
发布于 2017/02/09 13:27
字数 416
阅读 27
收藏 0

错误提示:java.lang.IllegalArgumentException: Receiver not registered。。


顾名思义就是Receiver没有被注册,这是由于取消了没有注册的Receiver导致的错误。

我们使用Receiver时必须保证注册(register)和反注册(unregister)成对出现。

遇到这种问题时,你需要检查下自己代码中注册和反注册的代码,看下是否存在多次调用unregister的时候。

很多时候都是想当然认为会那样,但是程序中可能有我们未预料的出口,比如我的程序中在onCreate注册,finish取消注册,理论进入、退出时应该成对出现,但实际报错了!分析到最后是原布局中使用了TabActivity、GroupActivity等多种结构嵌套,退出当前Activity时,finish方法被执行了多次。

所以建议Receiver注册和反注册的过程放到onResume和onPause过程中,两个理由:

(1)这两个过程肯定会成对出现,因此可以避免上述错误。

(2)一般我们使用Receiver是为了接受通知来更改UI(特殊情况除外),而对于Activity(UI)界面位于后台时,没必要去接受通知更改UI。

示例:

在 Adroid2.1 和 Adroid2.2 设备上,如果 Activity 中使用到 ViewFlipper 控件,进行横竖屏切换操作时会发生如下错误信息

java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper$1@43dee3c0

这是由于 onDetachedFromWindow() 莫名其妙地在 onAttachedToWindow() 之前被调用了。据说是一个 Bug ,不知在最新的 2.3 上是否修正。

下面提供一个很简单的解决方案,重写 ViewFlipper 的 onDetachedFromWindow() 方法

@Override
protected void onDetachedFromWindow () {
try {
super.onDetachedFromWindow();
}
catch (IllegalArgumentException e) {
stopFlipping();
}
}

本文转载自:http://blog.csdn.net/qq_18413391/article/details/52770508

共有 人打赏支持
luhang
粉丝 3
博文 15
码字总数 571
作品 0
长宁
程序员
私信 提问
项目启动时org.springframework.beans.factory.BeanCreationException

以下是报错的详细信息,请问这是什么原因要怎么解决 2017-07-11 13:21:05 -0 [localhost-startStop-1] ERROR - Context initialization failed org.springframework.beans.factory.BeanCreat......

方糖in
2017/07/11
86
1
hadoop集群启动报错,高手帮忙

2013-07-14 11:36:59,161 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting Na......

likeUbuntu
2013/07/14
3.7K
4
zookeeper 异常日志

java应用连接zookeeper,应用的日志文件中经常打印以下日志信息: [INFO ] [2017-02-10 10:59:09,247] [ClientCnxn$SendThread:975] [] [] []- [Opening socket connection to server 192.1......

彭小位
2017/02/10
342
1
Service not registered

Caused by: java.lang.IllegalArgumentException: Service not registered:com.broadcom.bt.app.settings.ServiceExtraSettingsActivity@414e11e0 at android.app.LoadedApk.forgetServiceDi......

程序袁_绪龙
2014/10/31
0
0
hadoop集群疯掉了

集群配置好几天了。就是没办法成功。无密码SSH登陆弄好了。现在就是启动的时候,发现:第一次执行jps可以看到一些JVM实例的运行。等我待会输入的jps的时候,那些JVM实例又神奇消失了。 看了一...

likeUbuntu
2013/07/17
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
35分钟前
1
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
53分钟前
13
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
54分钟前
1
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
今天
2
0
java框架学习日志-2

上篇文章(java框架学习日志-1)虽然跟着写了例子,也理解为什么这么写,但是有个疑问,为什么叫控制反转?控制的是什么?反转又是什么? 控制其实就是控制对象的创建。 反转与正转对应,正转...

白话
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部