我试图将数据保存在片段的onSaveInstanceState()中,但该方法从未被调用过。
有人能帮帮忙吗?
public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ScrollView content = (ScrollView) inflater.inflate(R.layout.content, container, false);
// More stuff
return content;
}
@Override
public void onSaveInstanceState(Bundle icicle) {
// NEVER CALLED
super.onSaveInstanceState(icicle);
//More stuff
}
}
发布于 2012-01-06 09:34:03
我终于找到了问题所在,至少在我的情况下是这样。我的FragmentActivity中有一个被覆盖的onSaveInstanceState
,它没有调用super.onSaveInstanceState(Bundle outState)
。一旦我将其添加到中,Fragment.onSaveInstanceState(Bundle outState)
就可以正常工作。
发布于 2014-01-03 05:14:32
我遇到了与您相同的问题,并尝试了onSaveInstanceState()方法,但不起作用。
我认为onSaveInstanceState()只适用于用户从一个活动跳到另一个活动并返回的场景,它不适用于用户在同一活动中的片段之间跳转的场景。
这是来自Google的指南文档。http://developer.android.com/guide/components/tasks-and-back-stack.html#ActivityState
发布于 2011-12-14 20:04:36
需要检查的一件事是,通过在AndroidManifest.xml中包含android:configChanges
标志,确保包含片段的活动不会阻止重启。
https://stackoverflow.com/questions/8503629
复制相似问题