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数据
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 -- 获取网络数据并将数据存到本地数据库中的更多相关文章
- Java爬网页数据,并存储到本地数据库中
由于开发一个人工智能项目,需要强大的后台数据库加持,所以,没有办法,又是需要医疗数据,只能自己爬某医疗网站数据,进行分析,但是由于不同网站的结构不一样,所以这个程序只能爬该网站的,第一次爬网页数据,自 ...
- Android获取网络状态
Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
- Python实现将图片以二进制格式保存到MySQL数据库中,以及取出:
创建数据库表格式: CREATE TABLE photo ( photo_no int(6) unsigned NOT NULL auto_increment, image MEDIUMBLOB, P ...
- android—获取网络数据
取网络数据主要靠发交易(或者说请求,接口等),而这些交易由java中的网络通信,HttpURLConnection和HttpClient实现,以下是具体例子. 大家都知道,网络通信,发送请求有两种 ...
- Android移动网络如何抓取数据包
1)下载tcpdump工具 tcpdump(dump the traffic on a network)是Linux中强大的网络数据采集分析工具之一,可以将网络中传送的数据包头完全截获下来提供分析.它 ...
- Android 获取网络类型
获取网络类型 public class IntenetUtil { //没有网络连接 public static final int NETWORN_NONE = 0; //wifi连接 public ...
- android 获取网络类型名称2G 3G 4G wifi
首先工程Manifest文件要引用: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" ...
- Android 获取网络状态
1.检测网络是否可用 public boolean isNetWorkConnected() { ConnectivityManager cm = (ConnectivityManager)getSy ...
随机推荐
- React Native环境搭建以及几个基础控件的使用
之前写了几篇博客,但是没有从最基础的开始写,现在想了想感觉不太合适,所以现在把基础的一些东西给补上,也算是我从零开始学习RN的经验吧! 一.环境搭建 首先声明一下,本人现在用的编辑器是SublimeT ...
- 02 button的练习
private void button1_Click(object sender, EventArgs e) { MessageBox.Show("我也喜欢你!"); //if ( ...
- Java泛型
什么是泛型? 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的一个 ...
- PHP学习笔记:输入一句话,实现单词倒序输出
约定:句子以空格为词语分割符号,以句号为结束符号. 实现思路: 用函数explode(separator,string,limit)对字符串进行分割,再对得到的数据最后一个成员分割切掉符号.用一个新的 ...
- quartz定时+log4net日志+exchangeservice发邮件
main using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...
- SSH远程登录原理与运用
SSH是每一台Linux电脑的标准配置. 随着Linux设备从电脑逐渐扩展到手机.外设和家用电器,SSH的使用范围也越来越广.不仅程序员离不开它,很多普通用户也每天使用. SSH具备多种功能,可以用于 ...
- 解决NSTimer存在的内存泄漏的问题
创建定时器会在一定的间隔后执行某些操作,一般大家会这样创建定时器,这样创建的定时,self对定时器有个引用,定时器对self也有个引用,造成了循环引用,最终造成了内存泄漏,如果定时器在做下载的操作就会 ...
- 转载文章(Redis中对key的操作)
转载地址:http://www.cnblogs.com/stephen-liu74/archive/2012/03/26/2356951.html 一.概述: 在该系列的前几篇博客中,主要讲述的是与R ...
- 使用gulp解决外部编辑器修改Eclipse文件延迟更新的问题
本人前端用惯了Hbuilder,修改了eclipse项目中的文件后,由于是外部编辑器修改过的,eclipse不会自动部署更新,一般按F5刷新项目,或者在 preferences > genera ...
- Jsp的九个内置对象
一.什么是内置对象?在jsp开发中,会频繁使用到一些对象.例如HttSession,ServletContext,HttpServletRequest.如果我们每次要使用这些对象都去创建这些对象,就会 ...