文档章节

java.lang.IllegalArgumentException: Receiver not registered

luhang
 luhang
发布于 2017/02/09 13:27
字数 416
阅读 20
收藏 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
长宁
程序员
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
zookeeper 异常日志

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

彭小位
2017/02/10
299
1
hadoop集群启动报错,高手帮忙

2013-07-14 11:36:59,161 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: STARTUPMSG: / STARTUPMSG: Starting NameNode STARTUPMSG: host = hadoopmaster/192.168.182.135 STARTUP......

likeUbuntu
2013/07/14
3.5K
4
hadoop集群疯掉了

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

likeUbuntu
2013/07/17
1K
3
架构设计之源:设计模式的场景分析(1)Publish-Subscribe

架构设计之源:设计模式的场景分析(1)Publish-Subscribe Author: Poechant Blog: blog.CSDN.net/Poechant Email: zhongchao.ustc@gmail.com Date: February 24th, 2012 我在设计模式方面仅......

晨曦之光
2012/04/24
156
0

没有更多内容

加载失败,请刷新页面

加载更多

Swift-系统默认UICollectionViewController的基本用法

不用xib创建时,需要重写 override init(collectionViewLayout layout: UICollectionViewLayout){} 在调用时需传 UICollectionViewLayout值,不然就会报错 let layout = UICollectionViewFlow......

west_zll
30分钟前
3
0
Spring Boot 最核心的 3 个注解详解

最近面试一些 Java 开发者,他们其中有些在公司实际用过 Spring Boot, 有些是自己兴趣爱好在业余自己学习过。然而,当我问他们 Spring Boot 最核心的 3 个注解是什么,令我失望的是鲜有人能答...

Java技术栈
31分钟前
5
0
Sqoop 增量导入导出及Job操作示例

增量导入 递增列的增量导入append # 第一次导入[root@node222 ~]# /usr/local/sqoop-1.4.7/bin/sqoop import --connect jdbc:mysql://192.168.0.200:3306/sakila?useSSL=false --table ac......

PeakFang-BOK
37分钟前
3
0
Thread中断的理解

★中断的理解:1)中断可以理解为线程的一个标识位属性;2)表示一个运行中的线程是否被其他线程进行了中断操作 中断好比其他线程向该线程打了个招呼,其他线程通过调用该线程的interrupt()...

karma123
44分钟前
3
0
App store 侵权投诉

App Store Content Dispute 侵权投诉 https://www.apple.com/legal/internet-services/itunes/appstorenotices/#?lang=zh...

壹峰
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部