Ответ 1
Из spec, нет способа настроить действие с идентификатором ресурса. Это должна быть простая строка, возможно, чтобы не потребовать, чтобы система отправки Android Intent открыла ваш APK, чтобы выяснить, для чего нужен фильтр.
Мой BroadcastReceiver никогда не вызывается, когда я использую "@string/action_name", чтобы определить действие фильтра намерения. Если я скопирую/вставлю соответствующую строку из strings.xml в AndroidManifest.xml, тогда она отлично работает!
Не рабочий пример из 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>
Из spec, нет способа настроить действие с идентификатором ресурса. Это должна быть простая строка, возможно, чтобы не потребовать, чтобы система отправки Android Intent открыла ваш APK, чтобы выяснить, для чего нужен фильтр.