、图片是new thread 这是java标准线程
Handler与线程
<1>在Activity和runnable同一个线程,打印出来的是一样的值,runnable并没有单独的线程运行,都是main
<2>handler.post(r);没有启动线程的start()方法,而是直接的在执run()方法。
public class HandlerTest extends Activity {
private Handler handler = new Handler();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// sendMessage();
//handler.post(r);
setContentView(R.layout.main);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("a--->" + System.currentTimeMillis());
//Thread thread = new Thread(runnable) ;
//thread.start();
//这是java标准线程。
System.out.println("activity--->" + Thread.currentThread().getId());
System.out.println("activityname--->" + Thread.currentThread().getName());
}
Thread runnable = new Thread(){
@Override
public void start(){
System.out.println("start---------");
super.start();
}
@Override
public void run() {
System.out.println("r1--->" + System.currentTimeMillis());
// TODO Auto-generated method stub
System.out.println("handler--->" + Thread.currentThread().getId());
System.out.println("handlername--->" + Thread.currentThread().getName());
try {
Thread.sleep(10000);
System.out.println("r2---?" + System.currentTimeMillis());
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
}