我想使用单例模式来保存我的Android应用程序的数据库和一些其他数据/方法.
我意识到有很多理由反对单身人士,但对于这种情况我想使用它.
我已经对UIApplication进行了细分,并在其中创建了一个名为MyAppData的数据类.
MyAppData需要访问SQLite数据库.
当我创建数据库时,我需要传递一个上下文.我可以传递应用程序上下文,但它不会直接与MyAppData相关.
我不知道这是否会导致我的代码出现问题.
所以我的想法是让MyAppdata扩展android.content.ContextWrapper.我认为我不应该扩展Activity,因为它实际上不是一个活动,它是一个带有访问数据库方法的数据类.
我想知道我是否扩展了ContextWrapper会不会在我遗漏的代码中有一些深层的东西会导致很大的问题(内存泄漏等).
这可能不是理想的方法(我考虑过其他方案),但我的目标是:
在UIApplication中有一个单例类,可以封装数据库,并可以从我的应用程序中的任何活动轻松检索.
提前感谢您的建议/警告/建议.
子类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类,将执行instertions/updates/etc.
这就是我在所有应用中使用的内容.