1.创建数据库
public class WatchDogOpenHelper extends SQLiteOpenHelper {
public static final String DB_NAME=”info”;
public WatchDogOpenHelper(Context context) {
super(context, “watchdog.db”, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//表中的字段,包名
db.execSQL("create table "+DB_NAME+"(_id integer primary key autoincrement,packagname varchar(50))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
2.对数据库的操作,复制blacknumdao,修改
private WatchDogOpenHelper watchDogOpenHelper;
//获取watchDogOpenhelper
public WatchDogDao(Context context){
watchDogOpenHelper = new WatchDogOpenHelper(context);
}
//增删改查
/**
* 添加包名
*
*/
public void addLockApp(String packagename){
// synchronized (b) {
//1.获取数据库
// blackNumOpenhelper.getReadableDatabase();//不加锁,线程不安全,效率比较高,一般用于读取数据
SQLiteDatabase database = watchDogOpenHelper.getWritableDatabase();//加锁,线程安全,效率比较低,一般用于操作数据库
//2.添加数据的操作
ContentValues values = new ContentValues();
values.put("packagname", packagename);
//table : 表名
//nullColumnHack : 如果你传递的数据为null,那就在相应的数据库设置相应的字段为null
//values : 要添加数据
database.insert(WatchDogOpenHelper.DB_NAME, null, values);
//3.关闭数据库
database.close();
// }
}
/**
* 查询应用是否加锁
*/
public boolean queryLockApp(String packagename){
boolean isLock=false;
//1.获取数据库
SQLiteDatabase database = watchDogOpenHelper.getReadableDatabase();
//2.查询数据库
//table : 表名
//columns : 要查询字段
//selection : 查询条件
//selectionArgs : 查询参数
//groupBy : 分组
//having : 去重
//orderBy : 排序
Cursor cursor = database.query(WatchDogOpenHelper.DB_NAME, null, "packagname=?", new String[]{packagename}, null, null, null);
//3.解析cursor
if(cursor.moveToNext()){
isLock = true;
}
//4.关闭数据库
cursor.close();
database.close();
return isLock;
}
/**
* 删除包名
*/
public void deleteLockApp(String packagname){
//1.获取数据库
SQLiteDatabase database = watchDogOpenHelper.getWritableDatabase();
//2.删除数据
//table :表名
//whereClause : 查询条件
//whereArgs : 查询条件的参数
database.delete(WatchDogOpenHelper.DB_NAME, "packagname=?", new String[]{packagname});
//3.关闭数据库
database.close();
}
/**
* 查询全部包名
* @return
*/
public List<String> queryAllLockApp(){
List<String> list = new ArrayList<String>();
//1.获取数据库
SQLiteDatabase database = watchDogOpenHelper.getReadableDatabase();
//2.查询数据库
Cursor cursor = database.query(WatchDogOpenHelper.DB_NAME, new String[]{"packagname"}, null, null, null, null, null);
//3.解析cursor
while(cursor.moveToNext()){
//4.获取数据
//获取黑名单
String packagename = cursor.getString(0);
//6.添加到集合
list.add(packagename);
}
//7.关闭数据库
cursor.close();
database.close();
return list;
}