SQLite所遇到的坑

使用SQLite的时候总是要在创建数据库的时候卡上半天,而且每次都是,之前都是直接复制别人博客上的代码,然后稍微改几个名字,今天结合Google官方教程中的推荐方法创建成功数据库,现在记录一下。

正确创建数据库与增删改查

详细请看这篇文章的后半段

这篇文章主要讲了如何正确创建数据库,如何正确的使用增删改查。
这里有几个注意点:

  • 使用SQL语句创建表格的时候不要使用SQL语句的关键字作为自定义的名字,比如不要使用create作为列的名字。
  • 如果数据库时,最好使用单例模式,传入Application的Context。

SQLite的更新和读取

经常会遇到在一个Activity里面向SQLite中写入数据,然后另一个Activity中马上将最新的变更读取出来,每次都坑,这里记录一下为什么坑。
首先我们看一下,一个写入的Activity退出和显示Activity的进入,它们所经历的的生命周期进程。

我们假设写入数据的Activity是C,显示最新数据的Activity的A,首先A启动C,然后C结束并重新进入A,整个过程的生命周期是这样的:
这里写图片描述
这里写图片描述

我们知道C调用onResume()方法后会正式显示出来,而C结束时,先调用onPause()方法,然后是A插进来调用一系列方法,然后C再调用剩下的方法结束自己。我在代码里以为是C结束,会全部结束,然后A在开始调用,其实实际看上去并不是这样的。

所以我在C的onStop()方法里写入数据,在A的onResume()方法里显示最新的数据,永远要A重新出现两次才可以显示,因为实际上并不是先调用C的onStop()方法,再调用A的onResume()方法,所以我们应该先在C的onPause()方法中写入数据,然后在A的onRestart()或onStart()或onResume()方法中显示数据即可。但是根据官方提示,在onPause()方法写入数据会拖累向下一个Activity的过渡,所以我们应该在onStop()方法中保存数据,但是如果我们下一个Activity要及时的显示最新的数据,我们还是应该调用onPause()方法来显示数据,否则调用onStop()方法就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值