public static final int downloadDone = 1; // 用戶model數組 ArrayList<Loginer> loginers = new ArrayList<>(); // hander Handler downloadLoginerHandler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case downloadDone: Toast.makeText(MyApplication.getApplication(), "同步用戶數據成功", Toast.LENGTH_SHORT).show(); break; } super.handleMessage(msg); } }; // 從服務器更新loginer數據 public void downloadData() throws IOException, XmlPullParserException { new Thread(new Runnable() { @Override public void run() { String url = "http://222.169.11.226:7000/WebServiceAndroidcm.asmx/getloginerInfo"; MyHTTP myHTTP = new MyHTTP(); Map map = new HashMap(); map.put("pw", "0535deer"); try { String string = myHTTP.doPost(url, map); System.out.println("成功::::"+string); String newString = string.replace("<?xml version=\"1.0\" encoding=\"utf-8\"?><string xmlns=\"http://tempuri.org/\">{\"Result\":\"1\",\"Value\":", ""); String lastString = newString.replace("}</string>", ""); // 將字符串進行解析 JsonParser jsonParser = new JsonParser(); // 將jsonstring轉換為jaonArray JsonArray jsonArray = jsonParser.parse(lastString).getAsJsonArray(); // gson Gson gson = new Gson(); // for 循環遍歷josnarray for (JsonElement loginerElement : jsonArray) { Loginer loginer = gson.fromJson(loginerElement, Loginer.class); loginers.add(loginer); System.out.println("大小是"+loginers.size()); } // 獲取dao對象 loginerDao = MyApplication.getApplication().getDaoSession().getLoginerDao(); // 新建一個Message對象 Message msg = new Message(); // 通過for循環插入數據到數據庫 for (int i = 0; i < loginers.size(); i++) { System.out.println("終於找到你:"+loginers.get(i).getLoginer_code()); long result = loginerDao.insertOrReplace(loginers.get(i)); System.out.println("結果是:"+result); // 如果全部替換或插入成功, 則彈出更新用戶數據成功 if (result == loginers.get(loginers.size() - 1).getLoginer_id()) { // 發送同步完成的消息到message msg.what = downloadDone; downloadLoginerHandler.sendMessage(msg); System.out.println("到最后一條了"); } } } catch (Exception e) { e.printStackTrace(); } } }).start(); }
調用:
// 開始更新loginers數據的數據 try { downloadData(); } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e) { e.printStackTrace(); }
截圖:


