AlarmManager:更短的测试间隔

时间:2017-12-22 15:28:24

标签: android alarmmanager android-pendingintent

我知道在生产设备AlarmManager中,不能超过1 /分钟触发 manager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() - 10000, 60000, pendingIntent) 。这很好,但是对于测试我想要很短的时间。

  public void until(final Predicate<T> isTrue) {
    until(new Function<T, Boolean>() {
      public Boolean apply(T input) {
        return isTrue.apply(input);
      }

      public String toString() {
        return isTrue.toString();
      }
    });
  }

有一些解决方法吗?建议的测试程序是什么?

2 个答案:

答案 0 :(得分:1)

Android设备不会以小于约1到2分钟的间隔触发重复警报(某些设备具有更严格的规则)。如果您希望更频繁地触发警报,则必须使用单个(非重复)警报,尽可能使用public static int reverse(int r, int n, int k){ if(r==0) return 0; else return + (r%10) * (int)Math.pow(10, (n-k-1))+reverse (r/10, n, k+1) } public static void main(String[] args) { System.out.println(reverse(1234, 4, 0)); } ,然后在警报响起时设置下一个警报。通过这种方式,您可以通过更精确的计时获得更短的间隔。

答案 1 :(得分:1)

通常,您不必测试广播接收器。 (如果我知道正确。如果不正确,请编辑!)

您应该测试应该显示的活动/课程的功能。 您可以通过以下方式做到这一点:

@get:Rule
val rule = ActivityTestRule(YourActivity::class.java)

这将开始您(给定的)活动,现在您可以测试您的功能了。

(用于启动活动/意图的更多选项:https://stackoverflow.com/a/61082715/11211963