WEB开发网
开发学院手机开发Android 开发 android 线程间的通信 阅读

android 线程间的通信

 2010-08-23 01:12:00 来源:WEB开发网   
核心提示:0910 /*11 * 在子线程创建handler,所以会绑定到子线程的消息队列中12 *13 */14 mChildHandler = new Handler() {1516 public void handleMessage(Message msg) {1718 /*19 * Do some expensive o

09

10 /*

11 * 在子线程创建handler,所以会绑定到子线程的消息队列中

12 *

13 */

14 mChildHandler = new Handler() {

15

16 public void handleMessage(Message msg) {

17

18 /*

19 * Do some expensive operations there.

20 */

21 }

22 };

23

24 /*

25 * 启动该线程的消息队列

26 */

27 Looper.loop();

28 }

29}

当Handler收到消息后,就会运行handleMessage(…)的回调函数,可以在里面做一些耗时的操作。

最后完成了操作要结束子线程时,记得调用quit()来结束消息循环队列。

view sourceprint?1mChildHandler.getLooper().quit();

下面是一个线程间通信的小例子:

view sourceprint?001/**

002 *

003 * @author allin.dev

004 * http://allin.cnblogs.com

005 *

006 */

007public class MainThread extends Activity {

008

009 private static final String TAG = "MainThread";

010 private Handler mMainHandler, mChildHandler;

011 private TextView info;

012 private Button msgBtn;

013

014 @Override

015 public void onCreate(Bundle savedInstanceState) {

016 super.onCreate(savedInstanceState);

017 setContentView(R.layout.main);

018

019 info = (TextView) findViewById(R.id.info);

020 msgBtn = (Button) findViewById(R.id.msgBtn);

021

022 mMainHandler = new Handler() {

023

024 @Override

025 public void handleMessage(Message msg) {

026 Log.i(TAG, "Got an incoming message from the child thread - "

027 + (String) msg.obj);

上一页  1 2 3 4  下一页

Tags:android 线程 通信

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