Android广播错误.MainActivity$MyReceiver; no empty constructor

广播的定义,如果是内部类,必须为静态类

http://blog.csdn.net/chdjj/article/details/19496567

下面总结一下作为内部类的广播接收者在注册的时候需要注意的地方
1.清单文件注册广播接收者时,广播接收者的名字格式需要注意。因为是内部类,所以需要在内部类所在的类与内部类之间加上$符号:
android:name="com.example.brocastdemo.MainActivity$MyReceiver"  

2.内部类在声明时一定要写成静态内部类(class关键字前加上static)。否则会抛出类似这样的异常:

02-19 09:11:14.650: E/AndroidRuntime(1771): java.lang.RuntimeException: Unable to instantiate receiver com.example.brocastdemo.MainActivity$MyReceiver: java.lang.InstantiationException: can't instantiate class com.example.brocastdemo.MainActivity$MyReceiver; no empty constructor

 

posted @ 2017-09-09 20:36  星辰之力  阅读(318)  评论(0编辑  收藏  举报