清单文件中是否可以将广播接收器定义为内部类?
我想在我的主要活动中创build一个广播接收器作为内部类。 但我有定义在清单xml文件广播接收机的问题,因为android找不到它。
码:
public class MyActivity extends Activity{ ... public class Receiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { .... } } ... }
performance:
<receiver android:name=".org.danizmax.myapp.MyActivity$Receiver" android:enabled="true"> <intent-filter> <action android:name="org.danizmax.myapp.BROADCAST_INITIAL_DATA"></action> </intent-filter> </receiver>
我试着用:
- .org.danizmax.myapp.MyActivity $接收器
- org.danizmax.myapp.MyActivity $接收器
- .MyActivity $接收器
- 。接收机
我看到其他人也有类似的问题,但没有find任何答案。
那可能吗? 如果没有,使用广播接收机的更好方法是什么?
谢谢!
对的,这是可能的。
接收者android:name属性应该看起来像.path.to.class.MyClass$MyInnerClass
如果你想使用非静态的内部类,你不能通过AndroidManifest.xml来完成。 但是,您可以在Android中dynamic注册BroadcastReceiver: Receiver作为内部类
使用BroadcastReceiver
的更好方法是将其设为自己的类。 这样的代码组织得更好,你可以重复使用它。