在不使用ContentProvider(Android)的情况下在循环中保留单例DB数据
如何在不使用内容提供商或加载程序的情况下,在屏幕旋转后在活动中保存单例数据库数据 这是一个面试问题,我被难住了 带游标加载器的ContentProvider是我的第一个想法,但他们说他们不想要那个。然后,我考虑保存从singleton DB的查询方法返回的游标,但我无法在OnSavedInstance中的out捆绑包中“放置”游标,所以我不知道 我还问他们“是否不鼓励使用单例数据库?”他们回答“是的,但这只是为了面试目的。” 也许这可以帮助将来遇到这个问题的人。“在活动中”听起来像是不允许我将所有内容传递给应用程序类(不会在屏幕旋转时销毁)。但以防万一,这是一种选择: 您可以编写自己的类,该类从在不使用ContentProvider(Android)的情况下在循环中保留单例DB数据,android,sqlite,singleton,Android,Sqlite,Singleton,如何在不使用内容提供商或加载程序的情况下,在屏幕旋转后在活动中保存单例数据库数据 这是一个面试问题,我被难住了 带游标加载器的ContentProvider是我的第一个想法,但他们说他们不想要那个。然后,我考虑保存从singleton DB的查询方法返回的游标,但我无法在OnSavedInstance中的out捆绑包中“放置”游标,所以我不知道 我还问他们“是否不鼓励使用单例数据库?”他们回答“是的,但这只是为了面试目的。” 也许这可以帮助将来遇到这个问题的人。“在活动中”听起来像是不允许我将所
应用程序
扩展而来。官员告诉你怎么做,但表示你基本上不需要这样做。话虽如此,这是规则中可能存在的例外情况的集合
在活动
中,您可以按如下方式访问它:
MyApplication app = (MyApplication)getApplication();
但就个人而言,我会将一个活动的数据
保存在保留的片段
中,而不是保存在应用程序
类中。它们在配置更改后仍然存在,但请记住它们不是后堆栈的一部分。因此,如果您有一个savedInstanceState!=null,保留的片段可能已在其初始状态下重新创建,例如,如果应用程序已暂停一段时间
上的指南显示了如何使用保留的片段
s您可以使用片段
并使用片段#设置保留实例(true)
。所有数据都应在配置更改期间保存。请注意,保留的片段不是可视的,它将沿着活动或片段放置。这可能会对您有所帮助:“在活动中”听起来像是不允许我将所有内容传递给应用程序类(不会在屏幕旋转时销毁)。所以我会使用保留片段,这很有意义,谢谢。“传递到应用程序类”是指在我存储信息的MainActivity中有类似“publicstaticmyapplicationvarname”的内容吗?(你可以回答我的问题,我会给你绿色的复选标记顺便说一句)