在工作线程(WorkerThread)中使用Handler

来源:互联网 发布:农业财政支出数据 编辑:程序博客网 时间:2024/05/17 07:36
方法一:
package com.h3c.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Looper;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class HandlerTestActivity extends Activity {    Button btn;    Handler mHandler;    LooperThread thread;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        btn = (Button) findViewById(R.id.btn);        thread = new LooperThread();        thread.start();        btn.setOnClickListener(new OnClickListener() {            public void onClick(View arg0) {                Log.e("H3c", mHandler + "==");                if (mHandler != null) {                    mHandler.sendEmptyMessage(6);                }            }        });    }    class LooperThread extends Thread {        @Override        public void run() {            super.run();            Looper.prepare();            mHandler = new Handler() {                @Override                public void handleMessage(Message msg) {                    super.handleMessage(msg);                    Log.e("H3c", msg.what + "=");                }            };            Looper.loop();        }    }}

方法二:

package com.h3c.test;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.HandlerThread;import android.os.Looper;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class HandlerTestActivity extends Activity {    Button btn;    MyHandler mHandler;    HandlerThread thread;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        btn = (Button) findViewById(R.id.btn);        thread = new HandlerThread("test_h3c");        thread.start();        mHandler = new MyHandler(thread.getLooper());        Log.e("H3c", "1:" + Thread.currentThread().getName());        btn.setOnClickListener(new OnClickListener() {            public void onClick(View arg0) {                mHandler.sendEmptyMessage(4);            }        });    }    class MyHandler extends Handler {        public MyHandler(Looper looper) {            super(looper);        }        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            Log.e("H3c", Thread.currentThread().getName() + "=" + msg.what);        }    }}


原创粉丝点击