我创建了一个服务器,每5分钟运行一次。但是当程序执行到while(true),就会报错。我估计这是不允许的。有什么更好的方法能重复执行某一个方法呢?
public class repService extends Service {
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
while(true){
Thread timer = new Thread(){
public void run(){
try {
sleep(5000);
// do something
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// do something
}
}
};
timer.start();
}
}
你可以使用 Timer().schedule
来每5分钟执行一次相同的任务。
new Timer().schedule(new TimerTask() {
@Override
public void run() {
//Do your task here
}
}, System.currentTimeMillis(), 5000);
如果你需要修改 UI 部分,要在 runOnUiThread
中添加上面的代码。
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
// do something
}
}, 0, 5000);