美文网首页Android知识程序员今日看点
如何阻止frament恢复销毁前状态

如何阻止frament恢复销毁前状态

作者: 微行丶简 | 来源:发表于2016-09-27 12:11 被阅读384次

    App开发时,我们总是遇到各种各样的需求。前些日子我就遇到一个不常见的需求:我们需要当Activity恢复时,不需要恢复Fragment的状态
    我们知道,在内存不足的时候,系统会回收优先级较低的Activity,并在销毁前通过onSaveInstanceState()方法保存当前状态。当然,fragment的状态也在该方法中被保存,代码截图如下。

    Activity_onSaveInstaceState.png

    接下来,我们再看一下在activity的onCreat中是如何恢复fragment状态的。

    Activity_onCreat.png

    现在,我们已经清楚了Frament状态的保存和恢复流程。那么接下来就简单了。我们只需要在fragment恢复状态之前,删除TAG为android:support:framents的数据就可以了。

    protected void onCreate(Bundle savedInstanceState) {
            // 删除frament状态
            if (savedInstanceState != null) {
                savedInstanceState.remove(FRAGMENTS_TAG);
            }
    
            super.onCreate(savedInstanceState);
            
            // 初始化逻辑
    }
    

    <h1>注意</h1>

    该文例中的frament是使用的android.support.v4包中的,所以上文中的TAG为android:support:framents

    如果使用原生frament的话,上文中的TAG请替换为android:framents

    相关文章

      网友评论

        本文标题:如何阻止frament恢复销毁前状态

        本文链接:https://www.haomeiwen.com/subject/mkmcyttx.html