首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Handler的了解

2012-08-26 
Handler的理解?A Handler allows you to send and process Message and Runnable objects associated with

Handler的理解

?

A Handler allows you to send and process Message and Runnable objects associated with a thread's MessageQueue. Each Handler instance is associated with a single thread and that thread's message queue. When you create a new Handler, it is bound to the thread / message queue of the thread that is creating it -- from that point on, it will deliver messages and runnables to that message queue and execute them as they come out of the message queue.?

Handler使你能够send 和 处理 与一个线程的消息队列相关的Message和Runnable对象。每一个Handler实例是和一个指定线程及其消息队列相关联的。Handler对象会被绑定到创建它的thread及其消息队列。然后你就可以delivere Message and Runnable 对象,handler 会按照顺序依次处理这些他们。

?

?

下面是实现的小例子

?

package hust.ophone.RunnableTry;

?

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Looper;

import android.os.Message;

import android.os.SystemClock;

import android.util.Log;

?

public class RunnableTry extends Activity {

?? ?/** Called when the activity is first created. */

?? ?@Override

?? ?public void onCreate(Bundle savedInstanceState) {

?? ? ? ?super.onCreate(savedInstanceState);

?? ? ? ?setContentView(R.layout.main);

?? ? ? ?sendMessage();

?? ? }?

?

?? ? public void sendMessage() {

?? ? ? ?MHandler mHandler = new MHandler();

//Returns a new Message from the global message pool. More efficient than creating and allocating new //instances. The retrieved message has its handler set to this instance (Message.target == this).

?? ? ? ?Message msg = mHandler.obtainMessage();

?? ? ? ?Log.v("TAG", msg.toString());

?? ? ? ?msg.sendToTarget();

?? ? }

?? ? class MHandler extends Handler {

?? ? ? ?public MHandler() {

?? ? ? ?}?

?? ? ? ?public MHandler(Looper l) {

?? ? ? ? ?super(l);

?? ? ? ?}?

?? ? ? ?@Override

?? ? ? ?public void handleMessage(Message msg) {

?? ? ? ? ?int count = 0;

?? ? ? ? ?while (count++ < 10) {

?? ? ? ? ? ? Log.d("TAG", "处理消息");

?? ? ? ? ?}

?? ? ? ?}

?? ? }?

}

?

热点排行