一.创建数据库
public MyHelper(Context context) { super(context, "myab", null, 1); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table dbcache(id integer primary key autoincrement,url text,jsondata text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }
建Dao类
public MyHelper helper; public DBDao(Context context){ helper=new MyHelper(context); } public void insertData(String url,String data){ SQLiteDatabase db = helper.getWritableDatabase(); db.delete("dbcache","url=?",new String[]{url}); ContentValues contentValues = new ContentValues(); contentValues.put("url",url); contentValues.put("jsondata",data); long rowid = db.insert("dbcache", null, contentValues); Log.d("zzz","新插入数据rowid:"+rowid); } public String queryData(String url){ Log.d("zzz","---正在查询数据---"); String data=""; SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("dbcache", null, "url=?", new String[]{url}, null, null, null); while (cursor.moveToNext()){ data=cursor.getString(cursor.getColumnIndex("jsondata")); } return data; }
private DBDao dbdao;
private void requestNetData() { if (NetStateUtils.isConn(this)) { new Thread() { @Override public void run() { try { URL ur1 = new URL(url); HttpURLConnection urlConnection = (HttpURLConnection) ur1.openConnection(); urlConnection.setReadTimeout(5000); urlConnection.setRequestMethod("GET"); urlConnection.setConnectTimeout(5000); int code = urlConnection.getResponseCode(); if (code == 200) { InputStream stream = urlConnection.getInputStream(); String s = InputStreamToString(stream); dbdao.insertData(url, s); Gson gson = new Gson(); Result result = gson.fromJson(s, Result.class); List<Result.NewslistBean> newslist = result.getNewslist(); Message msg = Message.obtain(); msg.obj = newslist; handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } else { Log.d("zzz","---无网状态,查询数据库中的数据---"); Toast.makeText(this,"现在没有网络,请稍后重试!",Toast.LENGTH_SHORT).show(); String s = dbdao.queryData(url); List<Result.NewslistBean> newslistBeans = asyncJson(s); showData(newslistBeans); } }
private void showData(List<Result.NewslistBean> lists) { if(operType==1){ datas.clear(); } datas.addAll(lists); setAdapter(); psv.onRefreshComplete(); }
public List<Result.NewslistBean> asyncJson(String json){ Gson gson = new Gson(); Result result = gson.fromJson(json, Result.class); List<Result.NewslistBean> newslist = result.getNewslist(); return newslist; }
private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); List<Result.NewslistBean> lists= (List<Result.NewslistBean>) msg.obj; showData(lists); } };