私のアプリケーション myApp1 には、レシーバーが 1 つしかありません
<receiver
android:name="com.plugins.Plugin">
<intent-filter android:priority="1000" >
<action android:name="Plugin.Broadcast" />
</intent-filter>
</receiver>
そして、別のアプリケーション myApp2 から BroadcastReceiver をそのレシーバーに送信すると、
Intent activityIntent = new Intent();
activityIntent.setAction("Plugin.Broadcast");
activityIntent.putExtra("appWidgetId", finalAppWidgetId);
sendBroadcast(activityIntent);
応答しません。そして、myApp1 にいくつかの Activity with Launcher カテゴリを追加すると、Main アクションが myApp1 のインストール後に実行され、レシーバーが機能します。なぜそれが起こったのですか?どうすれば修正できますか?
回答:ブロードキャストが受信されたことを確認するには、意図にフラグを追加する必要があります。
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);