您好,菜鸟请教问题

qq_40252810 2019-02-08 10:23:33
在学习android的数据库SQLiteOpenHelper用法,我第一次创建数据库时执行了onCreate函数,创建好后,我在DDMS把文件删除,再次点击create data按钮,并不会执行onCreate了,不是说把文件删除就可以再次执行oncreate吗?
把工程文件再次在模拟器安装了一下,点击create data按钮就可以执行oncreate,但是手动删除文件,再次还是不能执行oncreate。奇怪了,哎,
...全文
1561 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
peacejay 2019-02-21
  • 打赏
  • 举报
回复
引用 12 楼 qq_40252810 的回复:
谢谢,也就是手动调用onCreate()了,初次建立对象调用onCreate()这个是android操作系统设定的流程吧,就像初次建立对象会调用构造函数一样?

程序运行过,只要不卸载,onCreate就不会在执行了!就算升级安装也只会执行 更新方法onUpgrade 在里面判断版本号来插入表和新建表
qq_40252810 2019-02-21
  • 打赏
  • 举报
回复
引用 11 楼 peacejay 的回复:
第一次运行APP,初始化后就不会执行onCreate而是执行onUpgrade
比较简单的方法就是
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//版本为2的升级
if(oldVersion < 2){

}

//版本为3的升级
if(oldVersion < 3){

}
}


谢谢,也就是手动调用onCreate()了,初次建立对象调用onCreate()这个是android操作系统设定的流程吧,就像初次建立对象会调用构造函数一样?
peacejay 2019-02-21
  • 打赏
  • 举报
回复
第一次运行APP,初始化后就不会执行onCreate而是执行onUpgrade
比较简单的方法就是
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//版本为2的升级
if(oldVersion < 2){

}

//版本为3的升级
if(oldVersion < 3){

}
}

qq_40252810 2019-02-19
  • 打赏
  • 举报
回复
谢谢各位,继续努力,元宵节快乐,加油
林一天 2019-02-15
  • 打赏
  • 举报
回复
使用SQLite数据库的时候,onCreate只会在第一次创建数据库的时候调用,后面的操作表都不会对数据库进行操作,这一点要先理解清楚!
weixin_44656082 2019-02-14
  • 打赏
  • 举报
回复
需要重新初始化
松海阵阵 2019-02-14
  • 打赏
  • 举报
回复
重新初始化话就行了 ,删除后不起作用了
IGetYouu 2019-02-13
  • 打赏
  • 举报
回复
其他朋友已经回答的差不多了,在初始化时才会去调用onCreate,当你点击删除已经是后续操作了,怎么还会去onCreate。就问题而言实际使用也不是特别多。你可以在你删除后重新初始化不就再次创建了
开发者_android 2019-02-13
  • 打赏
  • 举报
回复
需要重新初始化,只有下次再打开时才会再次调用。
weixin_36155789 2019-02-13
  • 打赏
  • 举报
回复
重新初始化就好了
模仿达人 2019-02-13
  • 打赏
  • 举报
回复
重新初始化话就行了
suiyuaniaoo 2019-02-13
  • 打赏
  • 举报
回复
坚持哦,努力一定会有结果的
jklwan 2019-02-11
  • 打赏
  • 举报
回复
SQLiteOpenHelper初始化时才会调用onCreate(或onUpgrade),所以你手动删除后需要重新初始化才会重新创建,或者你重启app。

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧