易采站长站为您分析android的handle实现多线程和异步处理的示例,大家参考使用吧
<Button
android:id="@+id/start"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/start"
/>
<Button
android:id="@+id/stop"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/stop"
/>
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class HandlerDemo1Activity extends Activity {
Button startButton = null;
Button endButton = null;
Handler handler = new Handler();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button)findViewById(R.id.start);
这次浅谈一下Handler,为什么会出现Handler这个功能特性呢?首先,在之前的基本控件,基本都是在Activity的onCreate(Bundle savedInstanceState)方法中调用和处理的,但是,在有些情况,比如在网络上下载软件等一些需要等待响应时间比较长的操作,如果同样放在Activity的该方法中的话,那么在执行该方法的时候,整个Activity是不可动的,用户只能干等着,这样的用户体验是十分差的,这种处理方式带来的最好结果是等待了一段时间后,得到了想要的结果,不好的情况就是等了N久,也没有出现结果,有的甚至会使Activity报错,为了避免这些情况的发生,所以引入了Handler的特性,他就像是一个线程队列,它也是一种异步的消息处理。
首先我们先看一个例子,通过例子来对Handler进行认识。
布局文件中是两个按钮,分别是start和stop,分别控制线程的开始和停止。
<Button
android:id="@+id/start"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/start"
/>
<Button
android:id="@+id/stop"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/stop"
/>
在Activity中的代码如下:
复制代码import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class HandlerDemo1Activity extends Activity {
Button startButton = null;
Button endButton = null;
Handler handler = new Handler();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startButton = (Button)findViewById(R.id.start);










