2013-02-23 62 views
0

在我的应用程序myApp1我只有一个接收器接收器为什么不响应?

<receiver 
    android:name="com.plugins.Plugin"> 
    <intent-filter android:priority="1000" > 
     <action android:name="Plugin.Broadcast" /> 
    </intent-filter> 
</receiver> 

,如果我给广播接收器从我的另一个应用程序myApp2到接收器

Intent activityIntent = new Intent(); 
activityIntent.setAction("Plugin.Broadcast"); 
activityIntent.putExtra("appWidgetId", finalAppWidgetId); 
sendBroadcast(activityIntent); 

它不回应。如果我在myApp1中添加一些活动与启动类别,主要操作并运行后安装myApp1然后接收器工作。 为什么它发生?和我如何解决它?

答: 并保证广播接收我需要在我的意图添加标志:

i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); 

回答

0

开始的Android 3.0(蜂巢),直到他们已经推出的应用程序不能接收广播(也就是说一个活动已经启动)至少一次出于安全原因。

这样做是为了防止安装恶意应用程序,并自动运行常见广播,如BOOT_COMPLETEDBATTERY_CHANGED

由于这个原因,myApp1中的接收器仅在您的应用程序中至少打开一次UI的情况下才有效。

+0

thx,但这不是完整的答案。 – OlehB 2013-02-23 17:33:50

+0

@ user1807110它完全回答你的问题。你觉得缺少什么? – 2013-02-23 17:34:32

+0

“我该如何解决它?” - 我在网上找到答案。 – OlehB 2013-02-23 17:50:41