運行在UI線程一些代碼,一些延遲後:
Handler h = new Handler(Looper.getMainLooper());
Runnable r = new Runnable() {
@Override
public void run() {
//--code run in Main, UI thread
}
};
h.postDelayed(r,2000); //-- run after 2 seconds
處理程序上的目標線程需要Looper
。 UI線程已經擁有它,其他線程需要先配置。
其他選項是:
Timer:
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
//--code run in separate thread
}
},2000);
而且ScheduledExecutorService:
ScheduledExecutorService se = Executors.newSingleThreadScheduledExecutor();
se.schedule(new Runnable() {
@Override
public void run() {
//--code run in separate thread
}
},2, TimeUnit.SECONDS);
你可以使用一個處理器作爲替代 – Raghunandan
,你可以在這裏找到一個比如http:/ /stackoverflow.com/questions/17955120/timer-timertask-error/17955219#17955219 – Raghunandan