package com.jim.testapp;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button; class MyHandler extends Handler
{
private Activity mActivity;
private Button btn;
public MyHandler(Activity activity) {
mActivity = activity;
btn = (Button)activity.findViewById(R.id.button);
} @Override
public void handleMessage(Message msg) {
Integer integer = (Integer) msg.obj;
switch (msg.what) {
case MainActivity.MSG_ONE:
btn.setText(integer.toString());
break;
}
}
} class MyAsyncTask extends AsyncTask<String, Integer, Integer> { private MainActivity mActivity;
private Button btn; public MyAsyncTask(MainActivity activity) {
mActivity = activity;
btn = (Button)activity.findViewById(R.id.button);
} @Override
protected void onPreExecute() {
super.onPreExecute();
btn.setText("Loading start");
} @Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
btn.setText("Loading finished");
Log.i(MainActivity.TAG, "Result is " + integer);
} @Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
btn.setText("Loading " + values[0] + "%");
} @Override
protected Integer doInBackground(String... params) {
Log.i(MainActivity.TAG, params[0]);
for (int i = 1; i <= 10; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
publishProgress(i*10);
}
return 0;
}
} public class MainActivity extends AppCompatActivity { public static final String TAG = "jimtest";
public static final int MSG_ONE = 1;
public static final int MSG_TWO = 2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //MyAsyncTask task = new MyAsyncTask(this);
//task.execute("i am the param"); final MyHandler h = new MyHandler(this); Runnable r = new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
h.obtainMessage(MSG_ONE, new Integer(i)).sendToTarget();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
} }
}; new Thread(r).start(); }
}

  

Handler, AsyncTask用法简单示例的更多相关文章

  1. Android handler的使用简单示例

    Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMes ...

  2. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  3. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  4. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  5. Android中ProgressDialog的简单示例

    网上一般对进度条的示例都是如何显示,没有在任务结束如何关闭的文章,参考其他文章经过试验之后把整套进度条显示的简单示例如下: 建立android工程等工作都略去,Google一下就可以了. 下面来介绍主 ...

  6. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  7. springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)

    springMVC对Controller执行过程中出现的异常提供了统一的处理机制,其实这种处理机制也简单,只要抛出的异常在DispatcherServlet中都会进行捕获,这样就可以统一的对异常进行处 ...

  8. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  9. Python Thrift 简单示例

    本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例.Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度 ...

随机推荐

  1. MyBatis配置文件(五)--objectFactory对象工厂

    我们在使用MyBatis执行查询语句的时候,通常都会有一个返回类型,这个是在mapper文件中给sql增加一个resultType(或resultMap)属性进行控制.resultType和resul ...

  2. 通过Angular-cli创建新项目

    前提:已经安装Git 方法一:(推荐) 1.在需要创建项目的文件夹中右键打开 Git Bush Here ,在此输入  ng new ‘项目名’  --skip-install   (如下my-app ...

  3. Python学习之循环--绕圈圈(蛇形盘)

    效果图: 注意哦,右边多出来的一点不是程序有问题,是打印的时候我用的\t,但100,三个字符顶格的时候给顶出去的,我太懒了,不想再调输出格式了,就这么凑合看吧 实现代码: sum = int(inpu ...

  4. mysql 创建定时器

    mysql定时器是系统给提供了event,而oracle里面的定时器是系统给提供的job.废话少说,下面创建表: create table mytable ( id int auto_incremen ...

  5. 告别诊断烦恼 | 应用实时监控 ARMS 上线智能和实时诊断功能

    为什么要做这个功能? 作为一款应用性能监控产品,我们通常会给用户展示两类数据: 第一种是统计数据:用户通过使用统计数据设置报警(比如应用响应时间大于2s),缩小问题范围(比如报警时间范围内,是哪一个接 ...

  6. windows远程连接linux-安装xfce界面,ubuntn添加新用户

    参考:“ 使用xrdp实现windows 远程桌面连接linux”   http://blog.csdn.net/qq_33530388/article/details/64502902; http: ...

  7. Ubuntu下安装Libpcap

    Libpcap是 Unix/Linux 平台下的网络数据捕获函数包,百度百科是这么说的,唉,不管什么来头,只要帮我完成作业就行,安装过程记录如下: 还是那个套路,先在网上搜了一把,大概也就那样,被疯狂 ...

  8. jQuery 源码解析(二十九) 样式操作模块 尺寸详解

    样式操作模块可用于管理DOM元素的样式.坐标和尺寸,本节讲解一下尺寸这一块 jQuery通过样式操作模块里的尺寸相关的API可以很方便的获取一个元素的宽度.高度,而且可以很方便的区分padding.b ...

  9. 使用Jedis操作Redis-使用Java语言在客户端操作---hash类型

        我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.            所以该类型非常适合于存储值对象的信息.如Username.P ...

  10. IO流3 --- File类的常用方法2 --- 技术搬运工(尚硅谷)

    File类的判断功能 @Test public void test5(){ File file = new File("hello.txt"); //判断是否是文件目录 Syste ...