我想为Android应用程序每5分钟运行一次for循环。有没有比这更好的方法
for(;;) {
// code
final long NANOSEC_PER_SEC = 1000 * 1000 * 1000;
long startTime = System.nanoTime();
while ((System.nanoTime() - startTime) < 5 * 60 * NANOSEC_PER_SEC) {
}
}
答案 0 :(得分:0)
CountDownTimer
对于这类工作来说是一个很好的课程。它看起来像这样:
long duration = 12345;
long ticksInterval = 5000; // 5 second in millis
new CountDownTimer(duration, ticksInterval){
public void onTick(long remaining) {
// Do something each ticksInterval millis
}
public void onFinish() {
// Do something after duration millis
}
}.start();
那就是说,我不认为你可以在无限的时间内使用它,因为它需要一个结束时间。虽然你可以在完成后重新启动它。
答案 1 :(得分:0)
你应该每隔5分钟设置一次重复警报并在其中运行你的代码。
您也可以像下面的代码那样使用Handler。
final int REPEAT_CALL=2;
final int mFIVE_MINUTE=5*60*1000;
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case REPEAT_CALL:
//This will get execute by every 5 minute so write you for loop code here.
mHandler.sendEmptyMessageDelayed(REPEAT_CALL,mFIVE_MINUTE);
break;
}
}
};
你可以通过调用它来启动它:
mHandler.sendEmptyMessageDelayed(REPEAT_CALL,10);
之后每隔5分钟就会打电话。
您可以通过调用以下方法取消此回叫:
mHandler.removeMessages(REPEAT_CALL);