在Android开发中,会经常用到SQLite数据库来存储数据,但是不正确的使用SQLite,有时候会导致很多隐形Bug,这些隐形Bug并
不是每次都必现,却又使得你开发的APP崩溃率居高不下,下面这个错误就是一个典型:
这个异常,顾名思义就是在进行SQLite的dbopen操作时,因为有另外的实例也在操作着数据库,导致数据库进入锁定状态,如果发生这种情况,并且没对相关操作进行捕获异常处理,就会导致你的APP崩溃。
想要解决这种异常的发生,只需要对数据库的dbopen操作封装成单例,保证入口的唯一性,即可解决这种情况的发生,以下是一段代码示例:
private DBOpenHelper(Context context){
//第一版 数据库
super(context,"example.db",null, 1);
}
private static DBOpenHelper instance;
public static DBOpenHelper getHelper(Context context)
{
if(instance == null)
instance = new DBOpenHelper(context);
return instance;
}