android 线程间的通信
2010-08-23 01:12:00 来源:WEB开发网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);
更多精彩
赞助商链接