【Android -- 获取网络数据并将数据存到本地数据库中】宁可枝头抱香死,何曾吹落北风中。这篇文章主要讲述Android -- 获取网络数据并将数据存到本地数据库中相关的知识,希望能为你提供帮助。
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数据 publicvoid 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(); }
截图:
文章图片
文章图片
推荐阅读
- android textView 总是有paddingtop怎么解决
- 基于Eclipse+Cordova的Android Hybrid应用开发环境搭建
- Android开发 Error:The number of method references in a .dex file cannot exceed 64K.
- 将Eclipse项目转换成AndroidStudio项目过程中遇到的问题以及解决方法
- Android Studio Build选项的功能
- GPLBSDApache介绍以及三者之间的区别以及Android与他们之间的关系
- CAP|.netcore 分布式事务CAP 快速入门
- HTML元素介绍和用法示例
- PHP imagick的adaptiveResizeImage()函数用法示例