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();
}

截图:

最新文章

  1. 解决:sudo: 无法解析主机:dinphy-500-310cn: 连接超时
  2. Java方法trim()小记
  3. 搭建fedora开发环境 common lisp, c++, go
  4. DEV控件:gridControl常用属性设置
  5. mysql简介
  6. openssl API网络通信
  7. Android实现自适应正方形GridView(陌陌引导页面效果)
  8. wp8 入门到精通 动画
  9. sql中charindex
  10. BCP 导入导出数据库数据
  11. 非阻塞io与记录锁
  12. win7 ShuipFCMS 配置 及问题
  13. Spring(二)
  14. python中函数的参数解析
  15. java.lang.IllegalArgumentException异常 数据库别名问题
  16. 初识KNN
  17. oracle 11g R2(静默安装)
  18. TZOJ 1689 Building A New Barn(求平面上有几个其它点求到n个点的曼哈顿距离最小)
  19. SAS DATA步读取数据
  20. ARM有几条memory barrier 的指令?分别有什么区别?

热门文章

  1. css预处理器sass使用教程(多图预警)
  2. .NET 实现并行的几种方式(三)
  3. C#——this关键字(2,3)(含求助贴)
  4. 记录一次bug解决过程:规范变量名称和mybatis的使用以及代码优化
  5. GJM :Unity集成Leap Motion
  6. Django简介和安装
  7. 缓冲区溢出利用——捕获eip的傻瓜式指南
  8. Android 5.X新特性之RecyclerView基本解析及无限复用
  9. 最好用的Unity版本控制工具
  10. Junit单元测试