Android中Handler的基本用法



基本思路
  1主线程中显示更新ui
  2子线程中执行耗时操作

  3子线程做的每一步耗时操作向主线程发消息,主线程更新ui;

我写了一个例子核心代码如下

public class MainActivity extends Activity {
public ProgressBar pb;
Thread t;
int value = 0;


Handler handler = new Handler() {
// 接收message发送过来的消息
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
            System.out.println(value+">>>>>>>");
msg.arg1 = value;
pb.setProgress(value);


}


};



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();


}


public void btn_download(View v) {
// 显示进度条
pb.setVisibility(v.VISIBLE);
// 实例化线程对象
t = new Thread(new myThread());
// 将线程压入县城队列
handler.post(t);
}


// 创建一个线程
class myThread implements Runnable {


@Override
public void run() {


// 把消息和要做的事情写到这
value++;
Message message = handler.obtainMessage();
message.arg1 = value;
// 发送本消息,实际上是在触发handleMessage(Message msg)的执行
handler.sendMessage(message);
//          延时压入线程每1000毫秒执行一次  
handler.postDelayed(t, 1000);
// 默认进度条的最大值是100
if (value == 100) {
handler.removeCallbacks(t);


}



}


}


private void init() {
pb = (ProgressBar) findViewById(R.id.pb);


}


}

如果没有看懂,下载我的例子


http://download.csdn.net/detail/zhaihaohao1/8277579


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值