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

截图:

Android -- 获取网络数据并将数据存到本地数据库中的更多相关文章

  1. Java爬网页数据,并存储到本地数据库中

    由于开发一个人工智能项目,需要强大的后台数据库加持,所以,没有办法,又是需要医疗数据,只能自己爬某医疗网站数据,进行分析,但是由于不同网站的结构不一样,所以这个程序只能爬该网站的,第一次爬网页数据,自 ...

  2. Android获取网络状态

    Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...

  3. node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中

    步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...

  4. Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:

    创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...

  5. android—获取网络数据

    取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子.   大家都知道,网络通信,发送请求有两种 ...

  6. Android移动网络如何抓取数据包

    1)下载tcpdump工具 tcpdump(dump the traffic on a network)是Linux中强大的网络数据采集分析工具之一,可以将网络中传送的数据包头完全截获下来提供分析.它 ...

  7. Android 获取网络类型

    获取网络类型 public class IntenetUtil { //没有网络连接 public static final int NETWORN_NONE = 0; //wifi连接 public ...

  8. android 获取网络类型名称2G 3G 4G wifi

    首先工程Manifest文件要引用: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ...

  9. Android 获取网络状态

    1.检测网络是否可用 public boolean isNetWorkConnected() { ConnectivityManager cm = (ConnectivityManager)getSy ...

随机推荐

  1. [php]laravel框架容器管理的一些要点

    本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点.文章很长,但是内容应该很有用,希望有需要的朋友能看到.php经验有限,不到位的地方,欢迎帮忙指正. ...

  2. C#开发微信门户及应用(40)--使用微信JSAPI实现微信支付功能

    在我前面的几篇博客,有介绍了微信支付.微信红包.企业付款等各种和支付相关的操作,不过上面都是基于微信普通API的封装,本篇随笔继续微信支付这一主题,继续介绍基于微信网页JSAPI的方式发起的微信支付功 ...

  3. Workflow笔记1——工作流介绍

    什么是工作流? 工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象.概括.描述.BPM:是Business Process Management的英文字母缩写.即业务流程管理,是 ...

  4. java web学习总结(二十七) -------------------JSP标签介绍

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  5. 以ZeroMQ谈消息中间件的设计【译文】

    本文主要是探究学习比较流行的一款消息层是如何设计与实现的 ØMQ是一种消息传递系统,或者乐意的话可以称它为"面向消息的中间件".它在金融服务,游戏开发,嵌入式系统,学术研究和航空航 ...

  6. Android Stuido 常用快捷键

    Android Stuido 常用快捷键 Ctrl + Z : 撤消 Ctrl + G : 定位行 Ctrl + / : 单行注释 Ctrl + Shift + Z : 恢复 Ctrl + J : 快 ...

  7. android:使用Messenger进行进程间通信(一)

    Messenger简介 Messenger和AIDL是实现进程间通信(interprocess communication)的两种方式. 实际上,Messenger的实现其实是对AIDL的封装. Me ...

  8. 基于JQuery实现的文本框自动填充功能

    1. 实现的方法 /* * js实现的文本框的自动完成功能 */ function doAutoComplete(textid,dataid,url){ $("#" + texti ...

  9. php 学习路线图

  10. 一个高级的J2E工程师需要面对MySQL要有那些基本功夫呢<上>

    1. MySQL的架构介绍1.1 MySQL简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不 ...