android – 使用广播接收器作为具有清单注册的活动内部类
作者:互联网
我有一个活动,我有一个广播接收器(br).如果我以编程方式注册br,则接收器已注册并且工作正常.
但是,如果我在清单中注册接收器,则会收到java.lang.ClassNotFoundException.
<receiver
android:name=".MyActivity.UpdateUIClass"
android:exported="false"
>
<intent-filter>
<action android:name="com.mydomain.main.FILTER_UPDATE_UI" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
请指教
解决方法:
如果UpdateUIClass是MyActivity的内部类,那么你需要以这种方式引用它:android:name =“.MyActivity $UpdateUIClass”
这是您在布局XML中执行此操作的方式.不确定这是否适用于清单,但请试一试,看看它是否有效.
编辑
除非内部类是静态的,否则这是不可能的,因为清单会在加载时封送所有对象而不是按需封送.托管子类的类在解析接收器时不存在.
相关问题:Is it possible to define a broadcast receiver as an inner class in manifest file?
标签:android,exception,broadcastreceiver,classnotfound 来源: https://codeday.me/bug/20190826/1726591.html