在Android设备上每分钟后调用一次功能

时间:2017-03-01 07:01:41

标签: android timer alarmmanager

我想每分钟调用一个函数或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? 请帮忙。

3 个答案:

答案 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);