2017-04-18 22 views

回答

0

AlarmManager的超时时间不能少于20秒。任何小于此值的超时都将被取整。

首先,我会质疑你是否真的需要它每秒更新一次。这是一个令人难以置信的数量的处理能力,并且非常反对小部件的想法。如果需要经常更新,应该是一个应用程序。如果您的更新来自服务器,并且您希望立即显示它们,请查看推送消息。然后,只需在收到消息时更新,不需要警报或定时器。

其次 - 你做一个这样的短期计时器的方式是通过Handler.postDelayed。它可以有一个更小的分辨率。但是,如果手机睡着了,它可能无法运行。

+0

我试图给它10秒,但工具提示说最小超时时间是60秒 – Zoe

1

在这里,我让用户在屏幕上等待30秒,并在完成时隐藏视图和点击服务。您可以根据您的需要进行定制。

CountDownTimer timer = new CountDownTimer(31000, 1000) { 
      @Override 
      public void onTick(long millisUntilFinished) { 
       timer_text.setText("Remaining Seconds. " + millisUntilFinished/1000 + " s"); 
       if (count >= 30) { 

       } else { 
        count++; 
       } 
      } 

      @Override 
      public void onFinish() { 
       timer_text.setVisibility(View.GONE); 
       /// VOLLEY SERVICE 
      } 
     }.start();