当前位置:  开发笔记 > 数据库 > 正文

如何使用数据库制作Android单例和自定义数据类?

如何解决《如何使用数据库制作Android单例和自定义数据类?》经验,为你挑选了1个好方法。

我想使用单例模式来保存我的Android应用程序的数据库和一些其他数据/方法.

我意识到有很多理由反对单身人士,但对于这种情况我想使用它.

我已经对UIApplication进行了细分,并在其中创建了一个名为MyAppData的数据类.

MyAppData需要访问SQLite数据库.

当我创建数据库时,我需要传递一个上下文.我可以传递应用程序上下文,但它不会直接与MyAppData相关.

我不知道这是否会导致我的代码出现问题.

所以我的想法是让MyAppdata扩展android.content.ContextWrapper.我认为我不应该扩展Activity,因为它实际上不是一个活动,它是一个带有访问数据库方法的数据类.

我想知道我是否扩展了ContextWrapper会不会在我遗漏的代码中有一些深层的东西会导致很大的问题(内存泄漏等).

这可能不是理想的方法(我考虑过其他方案),但我的目标是:

在UIApplication中有一个单例类,可以封装数据库,并可以从我的应用程序中的任何活动轻松检索.

提前感谢您的建议/警告/建议.



1> yanchenko..:

子类android.database.sqlite.SQLiteOpenHelperandroid.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类,将执行instertions/updates/etc.
这就是我在所有应用中使用的内容.


我意识到这是一个古老的答案,但如果你还记得; 你在哪里关闭从getDB()返回的SQLiteDatabase?每次使用后?或者有什么方法可以在应用程序终止时关闭它吗?我知道应用程序中有一个onTerminate方法,但显然它不是在生产设备上调用的.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有