[android] 两种异步方式
使用AsyncTask开启子线程获取服务器数据,更新界面UI
/**
* 异步任务
*
* @author taoshihan
*
*/
public class HttpAsyncTask extends AsyncTask<String, Void, String> {
/**
* 在执行后台任务之前执行
*/
@Override
protected void onPreExecute() {
String netInfo = NetUtils.getNetworkInfo(context);
if ("no".equals(netInfo)) {
Toast.makeText(context, "网络连接失败", 0).show();
} else if ("wifi".equals(netInfo)) {
Toast.makeText(context, "wifi连接", 0).show();
} else if ("mobile".equals(netInfo)) {
Toast.makeText(context, "手机流量连接", 0).show();
}
} /**
* 后台运行,耗时的操作都放在这里,相当于Thread的run方法
*/
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
return null;
} /**
* 在执行后台任务之后,可以在这更改UI界面,相当于Handler里面的处理方法
*/
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
} }
使用Thread和Handler异步获取信息
/**
* 使用线程和Handler
* @author taoshihan
*
*/
public class HttpHandler extends Handler{
@Override
public void handleMessage(Message msg) {
//处理Message
}
}
public class HttpThread extends Thread{
@Override
public void run() {
//发送Message
new HttpHandler().sendMessage(new Message());
}
}
new HttpThread().start();
new HttpAsyncTask().execute("htp://www.baidu.com");
[android] 两种异步方式的更多相关文章
- MVC4 Action 两种异步方式
1. xxxAsync/xxxCompleted 组合方式异步,xxxCompleted 就是他的回调函数,在执行完 xxxAsync 后调用xxxCompleted . 使用 异步方式必须继承A ...
- AsyncTask和Handler两种异步方式的实现和区别比较
1 AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以 ...
- Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- Android 常用UI控件之TabHost(1)TabHost的两种布局方式
TabHost是Android中的tab组件. TabHost布局文件的基本结构 TabHost下有个layout,这个layout中有TabWidget与FrameLayout.TabWidget是 ...
- Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。
原文:Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式. Android Activity 的四种启动模 ...
- Android进程通信之一:两种序列化方式
2月下旬辞职了,去海南度假到现在,领略了一把三亚风情也算任性和 然而这样任性带来的后果就是..不行了我必须吐槽一句.. 没毕业的找工作就这么难嘛!投了57家一家面试机会都没有,好歹给个面试机会啊!!本 ...
- android位移动画的两种实现方式
在android开发,我们会常常使用到位移动画,普通情况下位移动画有两种实现方式.一种是直接通过java代码去实现,第二种是通过配置文件实现动画,以下是两种动画的基本是用法: 纯Java代码实现: / ...
- android带有文字的图片按钮的两种实现方式
android带有文字的图片按钮的两种实现方式 1). TextView对Button用相对布局,这要要求按钮的背景图片要留下空白位置给文字.这种方式开发比较简单,适合做一些风格一致的Button. ...
随机推荐
- nginx的conf文件,两种配置方式,第一种无ssl证书,第二种有ssl证书。
以下为无ssl证书配置的请求转发 server { listen 80; server_name api.******.com; location ~* /union { client_max_bod ...
- [Swift实际操作]八、实用进阶-(9)Swift中的链表LinkedList详解
链表是一种物理存储单元上的非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针连接次序实现的.相比于线性表的顺序结构,链表比较方便插入和删除操作.本文将讲解如何模拟一个链表. //链表的节点 ...
- Mysql创建、删除用户[转]
MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...
- c++ Initialization
c++ 的初始化过程比较复杂:根据对象的storage duration来分类.所谓storage duration是对象而言的,Storage duration is the property of ...
- leetcode-812-Largest Triangle Area
题目描述: You have a list of points in the plane. Return the area of the largest triangle that can be fo ...
- Linux 包管理器
RPM: rpm(Red-Hat Package Manager) 为 Redhat 提出的包管理器, 用于在 Redhat 及其衍生版本中安装 rpm 格式的软件包 rpm 的优点: 1.简化了源码 ...
- 977 AlvinZH过生日(背包DP大作战S)
977 AlvinZH过生日 思路 难题.逆推DP. 要明确dp的状态只与是否有选择权有关,而与选择权在谁手里无关.因为不论选择权在谁手里,那个人都会尽可能的获得最大的蛋糕重量. dp[i]表示分配到 ...
- wifi测距
#include "ESP8266WiFi.h" #include "math.h" //d = 10^(A-(abs(rssi)) / (10 * n)) 信 ...
- SPOJ - COT 路径构造主席树
题意:给出一个带权树,多次询问路径\((u,v)\)的第k小权值 这是主席树往区间扩展到树上的套路题 由于是按路径查询,我们无法使用dfs序,但可利用主席树对父亲扩展的方法构造出链 因此要用dfs构造 ...
- AXI协议(一)
最近弄Zynq,不懂AXI协议Zynq很难玩儿的转.这些笔记主要攻克AXI中的一些难题. 所有的AXI4包含了5个不同的通道: (1)读/写地址通道(Read/Write address ch ...