- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用单例模式为我的 Android 应用程序保存数据库和一些其他数据/方法。
我知道有很多理由反对单例,但对于这种情况我想使用它。
我对 UIApplication 进行了子类化,并在其中创建了一个名为 MyAppData 的数据类。
MyAppData 需要访问 SQLite 数据库。
当我创建数据库时,我需要传递一个上下文。我可以传递应用程序上下文,但它不会直接与 MyAppData 相关。
我不知道这是否会导致我的代码出现问题。
所以我的想法是让 MyAppdata 扩展 android.content.ContextWrapper。我认为我不应该扩展 Activity,因为它实际上不是一个 Activity ,它是一个具有访问数据库方法的数据类。
我想知道如果我扩展 ContextWrapper 是否会在我遗漏的代码中有一些深层的东西,这会导致以后出现大问题(内存泄漏等)。
这可能不是解决此问题的理想方法(我考虑过其他选择),但我的目标是:
在 UIApplication 中有一个单例类,它可以封装数据库并从我的应用程序中的任何 Activity 中轻松检索。
提前感谢您的建议/警告/建议。
最佳答案
子类 android.database.sqlite.SQLiteOpenHelper
和 android.app.Application
(后者在 AndroidManifest.xml
中正确声明) .
现在,
public class MyApplication extends Application {
private static SQLiteOpenHelper openHelper;
@Override
public void onCreate() {
super.onCreate();
openHelper = new DbManager(this);
//
}
public static SQLiteDatabase getDB() {
return openHelper.getWritableDatabase();
}
}
然后有将执行插入/更新/等的辅助 DAO 类。
这就是我在所有应用程序中使用的内容。
关于android - 如何使用数据库制作 Android 单例和自定义数据类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273107/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!