Sqlite是常用于嵌入式开发中的关系型数据库,完全开源。
与Web常用的数据库Mysql、Oracle、sql server不同,Sqlite是一个内嵌式的数据库,数据库服务器就在你的程序中,无需网络配置与管理,数据库服务端和客户端运行在同一程序中,减少网络访问的消耗,简化了数据库管理,不过Sqlite在并发、数据库大小、网络方面存在局限性,并且为表级锁,所以也没必要多线程操作。
在android中数据不多时表查询可能耗时不多,不会anr,不过大于100ms时同样会让用户感觉到延时和卡顿,可以放在线程中运行。
但Sqlite在并发方面存在局限,多线程控制较麻烦,这时候使用单线程持,在任务执行db操作,通过handler返回结果和ui线程交互,既不会影响UI线程,同样也能防止并发带来的异常。
示例代码如下: