我有一个这样的类 Render
:
public class Render {
private Timer timer;
private TimerTask timerTask;
@Override
public void refresh() {
if (timerTask != null)
timerTask.cancel();
timerTask = new LoadTask();
timer.schedule(timerTask, 1000);
}
private class LoadTask extends TimerTask {
@Override
public void run() {
//request the server
}
}
}
refresh
方法可能会被调用的很频繁,但是refresh
里面要做的工作有点繁重,它必须向服务器请求一些东西,所以我试图让这个方法在延迟后执行。
但是如图所示,调用此方法后将创建一个新的 LoadTask
实例,这在 android 中是否浪费内存?
所以我想知道是否有解决办法?
最佳答案
你将尝试这个来延迟执行任务
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
//Your task it will execute at 1 time only...
}
}, 5000);//5 seconds delay and you can change the delay time...
它会像循环函数一样每隔 10 秒执行一次线程...
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//Your logic it will repeating you task ever 10 seconds....
}
}, 5000, 5000);
关于java - 如何在延时后执行某个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22757434/