hcg_21 2012-11-22 07:54 采纳率: 0%
浏览 6344
已采纳

创建数据库后oncreate方法没被调用

我使用helper创建一个新数据库。按照文档所说的,当数据库一创建,oncreate方法就会被调用,但是这个方法没有被准确的调用。
下面是我要实现的代码。

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);
  }

1.除了使用helper,还有别的方法能创建数据库吗?
2.在数据库创建中,什么样的回调函数会被调用然后再被销毁?

  • 写回答

3条回答 默认 最新

  • xiaoyan_12 2012-11-23 02:21
    关注

    下面非常详细的描述如何从模拟器中删除数据库文件(和在一个真正的android手机上调试是非常相似的)。
    1.运行模拟器。如果有问题,那么你可以忽略其余的帮助信息!
    2.根据您的操作系统,停止一个命令行接口。
    3.执行命令:“adb shell”。然后进入Android Debug Bridge;命令会变成像一个简单的英镑符号。不用管原来的操作系统,现在是一个简化的unix操作系统。
    4.现在在模拟器中,输入命令‘ls -l'来验证是否在根目录(你将会看到一些非常像一个unix根目录系统的东西)。
    5.切换目录到存储的数据库文件。假设你的程序在包com.sillynames。myprogram5中运行,数据库文件被称为“myblackbook.db”。你会发现这个文件在目录: /data/data/com.sillynames.myprogram5/databases/myblackbook.db中。
    6.一旦在那个目录中,就可以通过“rm myblackbook.db”删除数据库。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 请教一下c语言的代码里有一个地方不懂
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档