为什么android广播需要写成静态内部类?

否则导致
java.lang.RuntimeException: Unable to instantiate receiver

错误

阅读 3.1k
2 个回答

你在XML中声明而且使用内部类当然需要使用静态化,系统从XML实例化时只会实例化你的类,不会实例化父类,而非静态内部类需要依赖父类的实例去实例化,所以必然是实例化不了的。
如果在XML中定义Receiver,你要么使用静态内部类,要么直接使用独立的类来实现。
如果你的类有依赖实例,必须依赖一些实例才能正常运行,那就在程序中实例化和注册,不要使用XML来声明。

有这回事吗?为什么我这边不用?是其他错误导致的吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题