Handle的应用及实例

来源:互联网 发布:淘宝上的枪模型 编辑:程序博客网 时间:2024/04/29 04:53

1、Handler是运行在主线程(UI线程)中的,在主线程和子线程间可以通过Message消息队列,实现数据的传递或者页面的更新。Handler可以分发Message对象和Runnable对象到主线程中,每个Handler实例,都会绑定到创建它的线程中(一般是主线程)。

2、Handler中分发消息的一些方法
        post(Runnable)
        postAtTime(Runnable,long)
        postDelayed(Runnable long)
        sendEmptyMessage(int)
        sendMessage(Message)
        sendMessageAtTime(Message,long)
        sendMessageDelayed(Message,long)

以上post类方法允许你排列一个Runnable对象到主线程队列中,sendMessage类方法, 允许你安排一个带数据的Message对象到队列中,等待更新。

private Handler handler = new Handler(){public void handleMessage(Message msg){if(msg.what==UPDATE){tv.setText(String.valueof(msg.obj));}super.handleMessage(msg);}};
public viod sendMessage{new Thread(){public void run(){Message msg= new Message();msg.what=UPDATE;msg.obj="new number is"+i;handler.sendMessage(msg);}}.start();}
以上是Handle处理Message的实例,同样,可以对Runnable对象进行处理:

public class Welcom extends Activity{protected void onCreated(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentview(R.layout.welcome);MyRunnable r =new MyRunnable();hanler.postDelayed(r,2000);//handler.postAtTime(r,System.currentTimeMillions()+1000);}Handler handler = new Handler();class MyRunnable implements Runnable{public void run(){Intent intent = new Intent();intent.setClass(welcom.this, secondActivity.class);startActivity(intent);}}}

0 0
原创粉丝点击