使用handler来实现异步处理

本文介绍了一个Android应用中使用线程和Handler实现异步任务的方法。通过创建一个子线程执行耗时操作,并利用Handler更新UI界面,展示了如何解决Android应用中常见的阻塞UI问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package OO.hebut;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

public class OO extends Activity {
	TextView textView;
	ProgressDialog dialog ;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		//handler.post(runnable);
		//new 一个线程对象
		Thread thread = new Thread(runnable);
		//启动线程
		thread.start();
		dialog= ProgressDialog.show(this, "", "", true, true);
		textView = (TextView) findViewById(R.id.text);
	}

	Runnable runnable = new Runnable() {

		@Override
		/**
		 * 实现异步操作的runnable类
		 * */
		public void run() {
			// TODO Auto-generated method stub
			try {

				Thread.sleep(10000);
				//生成一个消息对象
				Message msg = new Message();
				//将消息对象中的what设置为1
				msg.what = 1;
				//讲消息对象加入到消息队列中去
				handler.sendMessage(msg);

			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	};
	Handler handler = new Handler() {

		@Override
		/**
		 * 重写handler中的取消息方法
		 * 
		 * */
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
		    //对娶到的消息对象进行判断
			switch (msg.what) {
			case 1:
				dialog.dismiss();
				break;
			}
		}

	};
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值