Мое приложение состоит из двух действий, A и B. Я рассматриваю эту последовательность шагов:
- Начинается действие А.
- A запускает B [A приостановлен, B запущен].
- B запускает намерение карты [A и B теперь приостановлены].
Теперь пользователь использует приложение карт, и система решает, что ему нужно больше памяти. Может ли система убить только одну моих операций с памятью или она всегда будет уничтожать всех операций в " процессе " в этой ситуации?
Оба действия имеют некоторые статические данные, такие как:
class Data {
public static String mName;
public void save() {
// write to file: mName;
}
public void load() {
// mName = read from file;
}
}
ActivityA.mTextView.setText(Data.mName);
ActivityB.mListView.addText(Data.mName);
поэтому, когда какая-либо активность в моем приложении вызывается onSaveInstanceBundleSate (), я вызываю Data.save (), чтобы записать ее на диск. Теперь вопрос заключается в том, следует ли в методе onCreate () класса Activity просто проверить, является ли Data.mName == null, и если да, предположить, что Activity возвращается из состояния уничтожения, и попробовать восстановить с диска снова? Мне неясно, когда следует выполнить это восстановление, учитывая, что действие A может быть, а может и не быть, еще живым и т. Д. - и я не хочу портить состояние, если действие A все еще живо, но B возвращается из состояния уничтожения,
Спасибо
Спасибо