我已经看到了一些类似的问题,关于onSaveInstanceState不被要求Fragments,但在我的情况下Fragment,s 工作正常,这是遇到问题的主要FragmentActivity问题。
相关代码看起来相当简单:
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方法中。我错过了什么?