1

我为我的大部分应用程序(由多个活动和多个片段组成)使用了一个通用数据库。我想这是相当标准的,所以我要问一个更笼统的问题。跟踪该数据库的“最佳”方式(以及为什么)是什么?

我正计划在辅助类中使用静态变量(因为我对活动生命周期的有限理解意味着主要活动可能会在以后被核弹,所以这不是一个安全的地方)。但是另一种选择是每次我需要它时简单地使用 AsyncTask 来获取数据库引用“新鲜”(这是我第一次这样做的方式)。我不认为我可以使用附加功能发送它,而且我不知道任何使它可序列化的技巧。

我还有其他选择吗?我见过使用应用程序的参考资料,但我不熟悉这些。

4

1 回答 1

3

我打算在辅助类中使用静态变量

那,或者ContentProvider围绕数据库的包装,是两种典型的方法。

由于我对活动生命周期的有限理解意味着主要活动可能会在以后被核弹,所以这不是一个安全的地方

此外,由于您有多个活动,因此让一个活动持有数据库并不是特别有用,因为其他活动无法访问它。

但是另一种选择是每次我需要它时简单地使用 AsyncTask 来获取数据库引用“新鲜”(这是我第一次这样做的方式)。

这不是一个好主意。您需要 a 的单个实例SQLiteDatabase才能使内置线程同步工作。

我不认为我可以使用附加功能发送它,而且我不知道任何使它可序列化的技巧。

同意,这不是一个选择。

我还有其他选择吗?

如前所述,有些人会使用 aContentProvider作为数据库的包装器。这在尝试将这些数据公开给第三方时非常有用。对于纯粹的内部使用,它有利有弊。

我见过使用应用程序的参考资料,但我不熟悉这些。

由于自定义Application子类不会比拥有单例实例(静态数据成员)获得任何好处,因此我不会担心。

于 2013-08-07T17:56:03.783 回答