Handler mHandler = new Handler();
mHandler.post(r);
Runable r = new Runable(){
public void run(){
//do something
}
}
此时开启的任务只是加入主线程中,并没有真正开启新的线程。
开启真正线程的方法:
HandlerThread thread = new HandlerThread(name);
thread.start();
new Handler(thread.getLooper()).post(r);
如果对此使用较多,则可以封装一个静态方法,用于获取一个以新线程执行任务的对象:
/**
* 获取在新线程运行的Handler对象。
*
* @param name
* 线程名字。
* @return 在新线程运行的Handler对象。
*/
public static Handler getNewHandlerInOtherThread(String name) {
HandlerThread thread = new HandlerThread(name);
thread.start();
return new Handler(thread.getLooper());
}