Я видел несколько подобных вопросов о onSaveInstanceState
не вызывался для Fragment
с, но в моем случае Fragment
сек работают нормально, это главный FragmentActivity
, который возникли проблемы.FragmentActivity onSaveInstanceState не вызывался
Соответствующий код выглядит довольно просто:
public class MyFActivity extends FragmentActivity implements ActionBar.TabListener {
String[] allValues; // data to save
@Override
protected void onSaveInstanceState (Bundle outState) {
Log.d("putting it!", allValues.toString());
outState.putStringArray("allValues", allValues);
super.onSaveInstanceState(outState);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
allValues = savedInstanceState.getStringArray("allValues");
Log.d("getting it!", allValues.toString());
}
}
}
При приостановке деятельности (с помощью кнопки назад), то onSaveInstanceState
никогда не вызывается, и, следовательно, savedInstanceState
всегда null
в методе onCreate
при возобновлении приложения , Я попытался добавить блок, как это:
@Override
public void onPause() {
super.onPause();
onSaveInstanceState(new Bundle());
}
, который был предложен в https://stackoverflow.com/a/14195202/362657, но в то время как onSaveInstanceState
затем получает называется, savedInstanceState
остается null
в onCreate
метода. Что мне не хватает?
«При приостановке действия (с помощью кнопки« назад ») обычно это разрушает фрагмент, поэтому« savedInstanceState »теряется. Вы видите соответствующее 'saveInstanceState' в' onCreate() 'при повороте устройства? – Sam
Вместо onCreate, возможно, вы должны использовать onResume()? Если действие приостановлено, то onCreate() не следует снова вызывать, onResume() должен – Tom
Хм, это объясняет! Уничтожено это. – SaltyNuts