我有一个插件框架,它使用广播意图在主应用程序和插件之间进行通信。启动主应用程序发送广播意图
sendBroadcast(new Intent("com.mypackage.myapp.custom.intent.action.ADDON_REQ"));
每个插件应用都有一个在其清单文件中注册的广播接收器。
<receiver
android:name="IncomingReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.mypackage.myapp.custom.intent.action.ADDON_REQ" >
</action>
</intent-filter>
</receiver>
插件应用程序没有定义任何活动。这个框架适用于低于3.0的所有Android版本。从Honeycomb开始,插件中的广播接收器永远不会被调用。 直到我在插件应用中添加了一个主要活动,我无法解决这个问题。随着现在广播接收器中定义的活动开始接收广播消息。这种行为的可能原因是什么?有没有办法解决这个问题而不添加活动?
谢谢
答案 0 :(得分:1)
从蜂巢开始,你需要指定一个标志来启动接收应用程序,如果它还没有运行:Intent.FLAG_INCLUDE_STOPPED_PACKAGES。
Intent intent = new Intent("com.mypackage.myapp.custom.intent.action.ADDON_REQ");
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);