如何使延迟能够在一段时间后调用函数,但线程仍然在运行。还有比这更好的方法吗。
new Thread(new Runnable() {
public void run(){
try{ Thread.sleep(recordtime); }
catch(Exception e){}
runOnUiThread(new Runnable() {
@Override
public void run() {
reset();
}
});
}
}).start();发布于 2013-08-24 18:14:05
若要在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 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);https://stackoverflow.com/questions/18421444
复制相似问题