Ежедневно существует много вопросов о следующем типе на SO:
Как получить переменную из другого
Activity
?
Обычно ответы рекомендуют использовать SharedPreferences
или Intent.putExtra()
.
Для меня метод getter
- это подход к доступу к переменной из другого класса. В конце концов, рассматриваемый Activity
- это класс, а переменные являются членами класса.
Почему не предпочтительны методы getter, такие как SharedPreferences или Intent extras?
Я говорю о простых ситуациях, требующих доступа к переменной между действиями, например:
class OneClass extends Activity {
int a;
..
// some changes to a
..
}
И затем в другом классе (Activity
):
class SomeOtherClass extends Activity {
..
// trying to access a here
..
}
Существует ли метод getter
правильный подход или нет?
Опять же - я не говорю о сценариях, где эти вещи на самом деле верный путь. SharedPreferences
для постоянного хранения небольшого объема данных extras
, как указано в документации: Это может использоваться для предоставления расширенной информации компоненту. Например, если у нас есть действие для отправки сообщения электронной почты, мы можем также включить дополнительные фрагменты данных для предоставления темы, тела и т.д.
Как некоторые из ответов, вероятно, указывают на то, что существуют определенные сценарии, такие как отсутствие гарантии того, что другой Activity
жив, я думаю, есть более вероятные и правильные причины того, почему люди предлагают идти по намерениям и общим предпочтениям.