gpt4 book ai didi

android - 在不使用 ContentProvider 的情况下保留单例数据库旋转数据(Android)

转载 作者:行者123 更新时间:2023-11-29 18:58:33 25 4
gpt4 key购买 nike

如何在屏幕旋转后使用 Content Provider 或加载程序在 Activity 中保留单例数据库数据?

这是一个面试问题,我被难住了。

带有游标加载器的 ContentProvider 是我的第一个想法,但他们说他们不想要那个。然后我想到保存从单例数据库的查询方法返回的游标,但我无法将游标“放入”OnSavedInstance 的输出包中,所以我不知道。

我还问他们“不鼓励使用单例数据库吗?”他们说“是的,但这只是为了采访目的。”

也许这可以帮助将来遇到这个问题的人。

最佳答案

“在 Activity 中”听起来好像我不允许将所有内容传递给应用程序类(它不会在屏幕旋转时被破坏)。但以防万一这是一个选项:

您编写自己的类,该类扩展自 Application。官方documentation告诉您如何去做,但声明您基本上不需要这样做。话虽如此,这Stack Overflow post是规则中可能的异常(exception)情况的集合。

Activity 中,您可以像这样访问它:

MyApplication app = (MyApplication)getApplication();

但我个人不会将一个Activity 的数据保留在Application 类中,而是保留在保留的Fragment 中。它们在配置更改后仍然存在,但请记住它们不是后台堆栈的一部分。因此,如果您有一个 savedInstanceState != null,则保留的 Fragment 可能已经在其初始状态下重新创建,例如如果应用程序已暂停一段时间。

指南 Handling Configuration Changes显示如何使用保留的 Fragment

关于android - 在不使用 ContentProvider 的情况下保留单例数据库旋转数据(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49454592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com