Android 如何创建一个单例数据库类来将数据写入Sqllite数据库?
尽管我创建了一个静态类来保存数据库帮助器实例,但我还是不知道在哪里实例化该类。如何确保该类只有一个实例可用 我想说的是,我搞不清楚是哪种活动,我应该如何设置类以使其保持一个实例 不知道为什么会有人投反对票 起初,我有一个Android 如何创建一个单例数据库类来将数据写入Sqllite数据库?,android,Android,尽管我创建了一个静态类来保存数据库帮助器实例,但我还是不知道在哪里实例化该类。如何确保该类只有一个实例可用 我想说的是,我搞不清楚是哪种活动,我应该如何设置类以使其保持一个实例 不知道为什么会有人投反对票 起初,我有一个 public class DbStaticClass { public static LinkDataHandler sqlDataHandler = null; } 这是我在Splashscreen上初始化的,因为这是参赛者的活动。但它总是导致多个Sqllite
public class DbStaticClass {
public static LinkDataHandler sqlDataHandler = null;
}
这是我在Splashscreen上初始化的,因为这是参赛者的活动。但它总是导致多个Sqllite db实例。因此,我很困惑我该在哪里做
但它总是导致多个Sqllite db实例
Android中不能有单例类,因为Android Activity类的生命周期甚至进程都与应用程序的生命周期无关,Android可以随时实例化和销毁您的活动。你想写一个博格人而不是单身汉;多个Borg实例应该以蜂群思维进行行为,而不是依赖于只有一个类实例
如何确保该类只有一个实例可用
看来你对单身的定义是错误的。Singleton本身确保只有一个类实例可用。正确的做法是:
public class SQLiteBaseClass extends SQLiteOpenHelper {
private static SQLiteBaseClass mInstance;
private SQLiteBaseClass(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public static SQLiteBaseClass getInstance(Context c) {
if (mInstance == null) {
mInstance = new SQLiteBaseClass(c);
}
return mInstance;
}
}
现在,只要在需要执行数据库操作的地方调用SqliteBaseClass.getnstance即可
有关详细描述,您可以阅读我的博客文章如果没有更多的代码,很难说清楚-到目前为止,我们没有看到您将其实例化一次,更不用说多次了。不幸的是,在此之前从未听说过博格。