我已经看到了一些类似的问题,关于onSaveInstanceState
不被要求Fragment
s,但在我的情况下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
方法中。我错过了什么?