"@ string/action_name"を使用してインテントフィルタアクションを定義すると、私のBroadcastReceiverは呼び出されません。 strings.xmlから対応する文字列をAndroidManifest.xmlにコピー/ペーストすると、完全に機能します。AndroidManifest.xmlで<intent-filter>を定義するのに@string表記を使用できません
のAndroidManifest.xmlから非作業例:
<receiver
android:name=".ServerUpdateReceiver" >
<intent-filter>
<action android:name="@string/ACTION_INFORM_USER_SERVER_UPDATE" />
</intent-filter>
</receiver>
のAndroidManifest.xmlから例の作業:
:<receiver
android:name=".ServerUpdateReceiver" >
<intent-filter>
<action android:name="com.franklinharper.intent.action.ACTION_INFORM_USER_SERVER_UPDATE" />
</intent-filter>
</receiver>
をちょうど完全を期すため、のstrings.xmlは、次の行が含まれています
<string name="ACTION_INFORM_USER_SERVER_UPDATE">com.franklinharper.intent.action.ACTION_INFORM_USER_SERVER_UPDATE</string>
このような種類のものは私を泣かせます。私はなぜ私の 'BroadcastReceiver'がトリガーしなかったのかを理解しようと、ほぼ1時間を無駄にしました。文字列リソースを使用することは理にかなっています。なぜなら、すべてが1か所にあり、重複する定数を避けるからです。今、誰かが来て、マニフェストのアクションストリングを変更するが、他の場所では変更しないと想像してみてください...哀れみ。 –
それは不思議です、質問のおかげで –