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 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型