Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android SQLite – 为什么每次重新创建我的数据库?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图更好地理解sqliteOpenHelper类以及如何以及何时调用onCreate和onUpgrade.

我的问题是,每次我退出并启动我的应用程序(从技术上讲,实际上每次我创建一个新的MyDB实例),都会调用onCreate,并且有效擦除之前用法中的所有数据… WTF ???

我最初通过创建一个单独的MyDBFactory解决了这个问题,我在其中创建了@L_950_3@myDB实例.这使得数据在应用程序运行时至少是持久的.

我想要的是我的数据库架构和数据是持久的!

我基本上有:

public class MyDB extends sqliteOpenHelper{
      private static int version = 1;
      ...
      public ContactControlDB(Context context) {
        super(context,null,VERSION);
      }

@Override
public void onCreate(sqliteDatabase db) {
    try {
        db.execsql(DATABASE_create);
        db.execsql(INSERT_DATA);
    } catch (sqlException eX) {
        ex.printStackTrace();
    }
}

和:

public class MyDBFactory{

private static MyDB db;

public static MyDB geTinstance(Context context) {
    if(db == null) {
        db = new MyDB (context);
    }
    return db;
}

}

我想知道的是为什么每次我有’新mydb(上下文)’时调用onCreate,以及每次我的应用程序退出时我的数据库都会被调用.

如果你有一些合适的链接,或者一些可以让我知道的知识,我会非常感激!

解决方法

这条线:

super(context,VERSION);

第二个参数为null,指定应在内存中创建数据库,您应该为其命名.

Android reference

大佬总结

以上是大佬教程为你收集整理的Android SQLite – 为什么每次重新创建我的数据库?全部内容,希望文章能够帮你解决Android SQLite – 为什么每次重新创建我的数据库?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。