Android开发实现实现缓存功能
以论坛为例,只缓存最新的20条帖子 用到sqlite
创新互联公司是一家集网站建设,钟楼企业网站建设,钟楼品牌网站建设,网站定制,钟楼网站建设报价,网络营销,网络优化,钟楼网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
流程:1. 创建数据库文件和表
db.execSQL("CREATE TABLE table"
"(_id INTEGER PRIMARY KEY AUTOINCREMENT,subject VARCHAR(200),author VARCHAR(20), dateline VARCHAR(20),replies VARCHAR(20),tid VARCHAR(20)";
2. 查询、插入、删除
//插入
public static void insert(SQLiteDatabase db, ContentValues values)
{
db.insert(”reclist“, null, values);
}
//删除
public static void delete(SQLiteDatabase db)
{
db.delete(”reclist“, null, null);
}
//查询前先建PostInfo封装类,把得到的数据添加到ArrayList容器里
//查询
public static ArrayList
{
Cursor cursor = db.query("reclist", null, null, null,
null, null, null);
ArrayList
boolean hasNext = cursor.moveToFirst();
while (hasNext)
{
String author = cursor.getString(cursor
.getColumnIndex("author "));
String dateline = cursor.getString(cursor
.getColumnIndex("dateline"));
String replies = cursor.getString(cursor
.getColumnIndex("replies"));
String subject = cursor.getString(cursor
.getColumnIndex("subject"));
int tid = cursor.getInt(cursor
.getColumnIndex("tid"));
PostInfo info = new PostInfo(subject, author, dateline, replies,
tid);
data.add(info);
hasNext = cursor.moveToNext();
}
cursor.close();
return data;
}
3. 得到最新20条时,删除数据库表的内容 ,再插入
4. 启动时查询数据库
5. 如果有网络,从网络获取最新内容后,清空ListView,使用最新内容
//把查询到的内容添加到集合去
ArrayList
if (query.size() > 0)
{
mPostInfoList.addAll(query);
}
//在jsonArray解析的时候删除前面的内容
JSONArray array = new JSONArray(result);
if (array.length() > 0 && mPage == 1)
{
mPostInfoList.clear();
}
for (int i = 0; i < array.length(); i++)
{
JSONObject jsonObject = array.getJSONObject(i);
int tid = jsonObject.getInt("tid");
String hottopic_title = jsonObject.getString("subject");
String hottopic_name = jsonObject.getString("author");
String hottopic_shijian = jsonObject.getString("dateline");
String hottopic_huiying = jsonObject.getString("replies");
downloadData = new PostInfo(hottopic_title, hottopic_name,
hottopic_shijian, hottopic_huiying, tid);
mPostInfoList.add(downloadData);
}
if (mPage == 1)
{
// 删除旧的数据
DataBaseUtils.delete(mDB);
// 将最新20条保存到数据库中
for (int i = 0; i < mPostInfoList.size(); i++)
{
PostInfo info = mPostInfoList.get(i);
ContentValues values = new ContentValues();
values .put(TABLE_RECLIST.COLUMN_AUTHOR, info.getAuthor());
values.put(TABLE_RECLIST.COLUMN_DATELINE, info.getDateline());
values.put(TABLE_RECLIST.COLUMN_REPLIES, info.getReplies());
values.put(TABLE_RECLIST.COLUMN_SUBJECT, info.getSubject());
values.put(TABLE_RECLIST.COLUMN_TID, info.getTid());
DataBaseUtils.insert(mDB, values );
}
}
mAdapter.notifyDataSetChanged();
当前标题:Android开发实现实现缓存功能
文章网址:http://myzitong.com/article/gjcodc.html