网上没有找到合适的案例,最后自己实现
实现原理:在每次往数据库里写入记录时,判断里面的记录数为多少,倘若大于或等于最大记录数,则删除首行记录数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| //计算数据库的记录数量
private int getCount() {
Cursor cursor = getCursor();
if (cursor != null) {
int count = cursor.getCount();
cursor.close();
return count;
}
return 0;
}
//根据读取到的第一个主键来删除第一条记录
private void deleteFirst() {
Cursor cursor = getCursor();
if (cursor != null) {
//把cursor移动到第一条记录
if (cursor.moveToFirst()) {
//读出id
int id = cursor.getInt(cursor.getColumnIndex("id"));
myDB.getWritableDatabase().execSQL("DELETE FROM " + TABLE_NAME + " WHERE id=" + id);
}
cursor.close();
}
}
//获取Cursor
private Cursor getCursor() {
return myDB.getReadableDatabase().query(TABLE_NAME, null, null, null, null, null, null, null);
}
//保存bean到数据库
public void save(EnvironmentBean bean) {
//记录超过20条,先删除第一行
if (getCount() >= 20)
deleteFirst();
ContentValues cv = new ContentValues();
myDB.getWritableDatabase().insert(TABLE_NAME, null, cv);
}
|