我想每分钟调用一个函数或API(在点上)。
实施例: 如果我在上午06:05:15启动我的应用程序,那么我需要在上午06:06:00,再次在06:07:00 AM调用该方法,依此类推..
目前,我正在使用Time Scheduler
private void callTimer()
{
final Timer myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
// getCurrentTime();
Log.d("=============>>>>","timer triggered");
}
}, 0,60000);
}
但是在我启动应用程序后一分钟就会调用该函数。
示例:如果当前时间是06:06:15 AM,则会在06:07:15 AM再次调用该方法。我需要在点上调用它(即在06.07.00 AM之后45秒)。
使用定时器还是应该使用AlarmManager? 请帮忙。
答案 0 :(得分:0)
你可以从中实现......
Calendar c = Calendar.getInstance();
int second = c.get(Calendar.SECOND);
int stopFor = 60 - second;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
callTimer();
}
}, stopFor * 1000);
答案 1 :(得分:0)
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
YourFunction();
}
}, 3100);//your time
答案 2 :(得分:0)
使用以下代码。
Handler handler = new Handler();
handler.post(yourRunnable);// this will call immediately and run youRunnable defined in post.
Runnable yourRunnable = new Runnable() {
@Override
public void run() {
callTimer();
handler.postDelayed(yourRunnable,60000);// this will call runnable every minute.
}
}
//If you want to stop call your function every minute the do following.
handler.removeCallback(yourRunnable);