After doing some effort I did it (My app was working on perfect till android 2.3 but got db lock error when I used to run it on HoneyComb tablet).
I did using Semaphores (using lock in critical sections).
Example 1
public class DbExp extends SQLiteOpenHelper{
public static String Lock = "dblock";
private static final String DATABASE_NAME = "db.db";
private static final String TABLE_NAME = "table_name";
public void delete(Context mContext){
synchronized(Lock) {
SQLiteDatabase db = getWritableDatabase();
db.delete(TABLE_NAME, null, null);
db.close();
}
}
public void insert(){
synchronized(Lock) {
SQLiteDatabase db = getWritableDatabase();
db.insert(TABLE_NAME, ..., ...);
db.close();
}
}
}
Example 2
public class DB {
public static String Lock = "dblock";
private static final String DATABASE_NAME = "db.db";
private static final String TABLE_NAME = "table_name";
public void delete(Context mContext){
synchronized(Lock) {
SQLiteDatabase db = mContext.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
db.delete(TABLE_NAME, null, null);
db.close();
}
}
public void insert(Context mContext){
synchronized(Lock) {
SQLiteDatabase db = mContext.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
db.insert(TABLE_NAME, ..., ...);
db.close();
}
}
}
Hope this would help Anyone in future 🙂