Ответ 1
Hardcoding определенно не является идеальным решением.
Соглашение, используемое в платформе Android, заключается в создании констант public static final
с именем EXTRA_FOO
(где FOO - это имя вашего ключа), например Intent.EXTRA_ALARM_COUNT
Фактическое значение константы - это строка с разнесением по имени, чтобы избежать конфликтов: "android.intent.extra.ALARM_COUNT"
Если вы не хотите создавать зависимости между вашими действиями с константами, вам следует рассмотреть возможность ввода этих ключей в строковые значения в файле strings.xml. Я склонен следовать тому же соглашению об именах при определении ключей в xml:
<string name="EXTRA_MY_NAME">com.me.extra.MY_NAME</string>
Он по-прежнему читается как статическая константа со стороны Java:
getString(R.string.EXTRA_MY_NAME);