创建数据库后没有调用oncreate!

Pra*_*ath 3 android

我正在使用帮助器创建一个新的数据库,但是根据创建的文档应该在创建数据库时调用,但是它没有被正确调用.任何PLZ都可以帮我解决这个问题.Plz见下面的代码.

1)有没有办法创建数据库而不是使用帮助器,如果是这样plz建议我!2)在数据库创建中以及杀死数据库时将调用哪些回调?

OpenHelper(Context context) 
  {

     super(context, "examplee.db", null, 1 );
     SQLiteDatabase sqlite = null;       
      Log.w(TAG, "Openhelp database, ");
      sqlite =  context.openOrCreateDatabase("examplee.db", Context.MODE_PRIVATE, null );
      Log.e ( TAG,"SQ lite database object "+sqlite );                
  }

 public void onOpen(SQLiteDatabase db)
 {
     Log.e ( TAG,"On open called ");
 }


  @Override
  public void onCreate(SQLiteDatabase db) 
  {
      Log.w(TAG, " On create ");
      //db.execSQL(sql);
     //db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT)");
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
  {
     Log.w(TAG, "Upgrading database, this will drop tables and recreate.");
     //db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
     //onCreate(db);
  }
Run Code Online (Sandbox Code Playgroud)

}

提前致谢,

Sco*_*ggs 5

这里有一个关于如何从模拟器中删除数据库文件的非常详细的描述(在实际的Android手机上调试非常相似).

  1. 运行你的模拟器.如果您遇到问题,那么您可以忽略此帮助信息的其余部分!

  2. 根据您的操作系统,启动命令行界面.

  3. 执行命令:'adb shell'(当然省略引号).这将带你进入Android Debug Bridge; 你的提示将改为简单的英镑符号.无论您的原始操作系统如何,您现在都处于简化的unix OS中.

  4. 你现在在你的模拟器中.输入命令'ls -l'以验证您是否在根目录中(您将看到与unix根目录系统非常相似的内容).

  5. 将目录更改为存储数据库文件的位置.假设您运行的程序位于软件包com.sillynames.myprogram5中,并且数据库文件名为"myblackbook.db".您将在目录中找到该文件:

    /data/data/com.sillynames.myprogram5/databases/myblackbook.db

  6. 进入该目录后,只需通过'rm myblackbook.db'删除数据库即可.

希望这可以帮助!斯科特