我有一个activity
主页,其中包含fragment
。我试图在用户回到家时恢复activity
的状态。
这是Home Activity
的方法,它将片段实例存储到Bundle
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
getSupportFragmentManager().putFragment(outState,"fragment",feedFragment);
}
我在onCreate
HomeActivity
支票
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
context = this;
initUi();
initToolbar();
initFragment(savedInstanceState);
}
private void initFragment(Bundle savedInstanceState) {
if(savedInstanceState!=null){
feedFragment = getSupportFragmentManager().getFragment(savedInstanceState,"fragment");
}else{
FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.content_container, feedFragment).commit();
}
}
所以问题是当我在HomeActivity时改变屏幕的方向。它恢复它的状态。但是,当我在其他活动中,我从另一个活动的动作栏中的后退箭头回到家庭活动。然后它不会恢复它状态它再次开始从服务器加载数据。 我究竟做错了什么?当我从操作栏中的后退箭头导航回HomeActivity时,如何恢复prevoius状态
答案 0 :(得分:1)
您使用onSaveInstanceState
和onRestoreInstanceState
方法。
阅读此answer,以便找到问题的解决方案。
答案 1 :(得分:1)
请在您的HomeActivity的activity元素内的manifest文件中输入android:launchMode =" singleTop"