重新启动后恢复视图状态
Posted
技术标签:
【中文标题】重新启动后恢复视图状态【英文标题】:restore views state after reStart 【发布时间】:2015-10-13 03:47:11 【问题描述】:当按下 Home 键时,应用程序进入后台,当我再次将其置于最前面时,一些按钮失去了可见性和文本状态。我该如何解决这个问题?,Activity reStart 获取被称为但不是 onCreate 因此 savedInstanceState 不可用。视图在 xml 中定义了它们的 id,它们的可见性和文本在代码中发生了变化。
【问题讨论】:
when I bring it to the front again, some buttons loose their visibility and text states
你的意思是在理想情况下还是你正在杀死应用程序进程?
只需覆盖活动中的后退按钮,您的任务就会后退。 moveTaskToBack(true);
应用程序没有被杀死,因为片段视图仍然完好无损。不调用 onDestroy。 onRestart 被调用。
【参考方案1】:
我试过这个适合我的接缝。不确定这是否是“正确”的做法。
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
mViewState = new Bundle();
@Override
protected void onPause()
super.onPause();
mViewState.putInt("mainBtVis", mMainButtons_LL.getVisibility());
@Override
protected void onPostResume()
super.onPostResume();
int vis = mViewState.getInt("mainBtVis");
mYes_Bt.setVisibility((vis == 0 ? View.VISIBLE : vis == 4 ? View.INVISIBLE : View.GONE);
【讨论】:
以上是关于重新启动后恢复视图状态的主要内容,如果未能解决你的问题,请参考以下文章