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 query(SQLiteDatabase db)

   {

       Cursor cursor = db.query("reclist", null, null, null,

               null, null, null);

       ArrayList data = new 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 query = DataBaseUtils.query(mDB);

       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://pwwzsj.com/article/gjcodc.html