读书人

handler运用之-线程队列与ui线程

发布时间: 2012-08-21 13:00:21 作者: rapoo

handler使用之---线程队列与ui线程

这里Handler线程队列和ui主线程公用一共。Handler并没有真正的启动一个线程,而是直接调用run方法。

public class Test extends Activity implements OnClickListener {

? ? @Override

? ? protected void onStop() {

? ? ? ? // TODO Auto-generated method stub

? ? ? ? super.onStop();

? ? ? ? handerHandler.removeMessages(0);

? ? }

?

? ? private TextView textView1;

?

? ? public static int add;

?

? ? private Handler handerHandler = new Handler() {

?

? ? ? ? /*

? ? ? ? ?* (non-Javadoc)

? ? ? ? ?* @see android.os.Handler#handleMessage(android.os.Message)

? ? ? ? ?*/

? ? ? ? @Override

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

? ? ? ? ? ? switch (msg.what) {

? ? ? ? ? ? ? ? case 0:

// ? ? ? ? ? ? ? ? ? ?textView1.setText("add");

? ? ? ? ? ? ? ? ? ? textView1.setText(""+add+"");

? ? ? ? ? ? ? ? ? ?++add;

? ? ? ? ? ? ? ? ? ?removeMessages(0);

? ? ? ? ? ? ? ? ? ?sendEmptyMessageDelayed(0, 5000);

? ? ? ? ? ? ? ? ? ? Log.e("I AM HANDLER", "I AM TEST>>>>>>>>>>>>>>>>>>>>>>>O");

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 1:

?

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 3:

?

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? case 4:

?

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? ? ? super.handleMessage(msg);

? ? ? ? }

? ? };

?

? ? Runnable testRunnable = new Runnable() {

? ? ? ? public void run() {

?

? ? ? ? ? ? // 在这个线程里我们发送一个消息给消息队列,发完之后继续执行下面的代码,

? ? ? ? ? ? // 至于发送的消息的处理由handleMessage处理。这是异步的两个线程,实现了两个线程间的通信

? ? ? ? ? ? handerHandler.sendEmptyMessage(0);

? ? ? ? ? ? Log.e("这是一个线程", "》》》》》》》》》》》》》》》》》》》》》》这个线程要打印run");

? ? ? ? }

? ? };

? ? @Override

? ? public void onCreate(Bundle savedInstanceState) {

? ? ? ? super.onCreate(savedInstanceState);

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

? ? ? ? init();

? ? ? ? handerHandler.post(testRunnable);

?

// ? ? ? ?Message msg = new Message();

// ? ? ? ?msg.what=0;

// ? ? ? ?handerHandler.sendMessage(msg);

? ? ? ? //这用方法比上面那种Message的获取方法节省内部空间

// ? ? ? ?Message msg=handerHandler.obtainMessage();

// ? ? ? ?msg.arg1=0;

// ? ? ? ?handerHandler.sendMessage(msg);

?

?

?

? ? }

读书人网 >移动开发

热点推荐