WEB开发网
开发学院手机开发Android 开发 Android 从现实生活中理解线程消息机制 阅读

Android 从现实生活中理解线程消息机制

 2010-08-26 10:57:00 来源:WEB开发网   
核心提示:private Handler handler;private int textLength = 0;private boolean isStop = true;首先将要使用的数据类型声明在头部,将会使用到 java 的 Thread 和Android Handler 对象,Android 从现实生活中理解线程消息机制

private Handler handler;

private int textLength = 0;

private boolean isStop = true;

首先将要使用的数据类型声明在头部,将会使用到 java 的 Thread 和Android Handler 对象,首先实现Runable 对象,代码如下:

Runablerun = new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

try {

int i = 0;

do {

i++;

Thread.sleep(i > 15 ? 20 : 100);

Message msg = handler.obtainMessage();

msg.arg1 = i;

msg.sendToTarget();

if (i == textLength) {

isStop = false;

}

} while (isStop);

} catch (Exception e) {

// TODO: handle exception

}

}

};

上面代码还可以如此写法:

Message msg=new Message();

msg.arg1=i;

handler.sendMessage(msg);

第一种写法是message 从handler 类获取,从而可以直接向该handler 对象发送消息,第二种写法是直接调用 handler 的发送消息方法发送消息。不过不管是第一种方法好还是第二种方法好,都要在同样的handler 接收消息,否则会报异常。下面实现handler 对象,代码如下:

/**

* 启动线程

*

* @param tv

* @param text

* @return

*/

public Handler getHandler(final TextView tv, final String text) {

Handler hand = new Handler() {

public void handleMessage(Message msg) {

tv.setText(text.substring(0, text.length() - msg.arg1));

super.handleMessage(msg);

};

};

return hand;

}

这里返回一个handler 对象,实际上是返回去给上面我们的handler 对象使用,这里我把它封装成一个方法,可以让它在每次接收到消息后去使用消息处理文本每次减1

设置

Tags:Android 现实 生活

编辑录入:coldstar [复制链接] [打 印]
赞助商链接