
Android中Handler的post()与Thread的start()执行Thread的run()区别分析
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文深入探讨了在Android开发中,Handler的post()方法和Thread的start()方法在执行任务时的区别,帮助开发者理解如何更有效地使用多线程。
package com.example.study_5_handlerthread;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列
// 此时只会执行run()方法,但是不会开启新的线程
/* 以下为注释部分 */
Handler h = new Handler();
// h.post(r);
/* 在Java中真正开启线程的方法是这样的。 */
Thread t = new Thread(r);
t.start();
setContentView(R.layout.activity_main);
System.out.println(Activity--> + Thread.currentThread().getId());
System.out.println(Activity--> + Thread.currentThread().getName());
}
Runnable r = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Handler--> + Thread.currentThread().getId());
System.out.println(Handler--> + Thread.currentThread().getName());
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
全部评论 (0)


