android– 有必要保存单身人士吗?

android– 有必要保存单身人士吗?,第1张

概述问题:我在一个单独的类中保存了一些数据……有时它会发生,这个单例返回我从中导出的空数据,它被销毁了……我的想法/想法:实际上,我认为,只要应用程序存在,单例就会存在,只要应用程序记住其他任何东西,例如片段状态,我的单例也会存在它的最后数据.这不对吗?具体问题:我的情况如下:

问题:

我在一个单独的类中保存了一些数据……有时它会发生,这个单例返回我从中导出的空数据,它被销毁了……

我的想法/想法:

实际上,我认为,只要应用程序存在,单例就会存在,只要应用程序记住其他任何东西,例如片段状态,我的单例也会存在它的最后数据.这不对吗?

具体问题:

我的情况如下:我从我的主片段转到子片段并在我的单身中保存一个选定的对象…我停止使用我的应用程序并在一段时间后回来.我的应用程序记住它的状态并重新创建片段,我的片段想从我的单例中获取所选对象并获得null.

我想,只要应用程序存在就应该存在一个单例,因此不需要保存…每当应用程序结束时,无论如何都不会恢复任何内容,我的应用程序将不会记住任何内容,所以无论如何都没关系.这是一个错误的假设吗?

我需要回答这个问题,因为如果我确定,上述想法是正确的,我至少知道,我必须在其他地方寻找问题……

解决方法:

这是我发现(或已经忘记)的短暂总结

>虽然应用程序已被破坏,但可以重新创建活动
>如果没有从某个地方进行参考,单身人士可以被垃圾收集

所以你必须节省你的单身人士!否则,只要您的手机处于内存不足状态,它就可能会终止应用程序并创建一个新应用程序,但请重新开始活动……

对我来说,因为我实际上总是使用带有片段的单个活动,所以很容易解决问题:

>当我创建一个活动时,我调用静态恢复功能(在调用get !!!之前)
>在活动的onSaveInstanceState中,始终将单例保存到包中

=&GT所以我的单身看起来像跟随(基础结构)

public class DataCache implements Parcelable{    private static final String TAG = DataCache.class.getname();    private static DataCache mCache = null;    public static synchronized final DataCache get()    {        if (mCache == null)            mCache = new DataCache();        return mCache;    }    private DataCache()    {        // init...    }    public voID save(Bundle outState)    {        outState.putParcelable(TAG, this);    }    public static voID restore(Bundle savedInstanceState)    {        if (savedInstanceState != null && savedInstanceState.containsKey(TAG))        {            // only restore, if necessary, i.e. if application was destroyed but activity saved our last cache            if (mCache == null)                mCache = savedInstanceState.getParcelable(TAG);        }    }}
总结

以上是内存溢出为你收集整理的android – 有必要保存单身人士吗?全部内容,希望文章能够帮你解决android – 有必要保存单身人士吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1114828.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存