簡體   English   中英

Android將鬧鍾設置為一天中的特定時間

[英]Android set repeating alarm for certain time of day

我正在嘗試設置一個重復警報,該警報將每分鍾但僅在8:00和22:00之間下載文件。 我覺得我真的很接近,但看不到我在犯的錯誤。 當前,廣播接收機未激活。 如果將重復警報手動設置為alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+ 10000,60000,pendingIntent); 它工作正常。 任何指導將不勝感激。

protected void scheduleNextUpdate()
      {
        Intent intent = new Intent("TEST");
        PendingIntent pendingIntent =
            PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        int updateInterval =  1;
        long nextUpdate =(60000 * updateInterval);

        long currentTimeMillis = System.currentTimeMillis();


        long nextUpdateTimeMillis = currentTimeMillis + nextUpdate;
        Time nextUpdateTime = new Time();
        nextUpdateTime.set(nextUpdateTimeMillis);

        if (nextUpdateTime.hour < 8 || nextUpdateTime.hour > 22)
        {
          nextUpdateTime.hour = 8;
          nextUpdateTime.minute = 0;
          nextUpdateTime.second = 0;
          nextUpdateTimeMillis = nextUpdateTime.toMillis(false) + DateUtils.DAY_IN_MILLIS;
        }

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, nextUpdateTimeMillis,pendingIntent);

        boolean alarmUp = (PendingIntent.getBroadcast(this, 0, 
                new Intent("TEST"), 
                PendingIntent.FLAG_NO_CREATE) != null);

        if (alarmUp)
        {
            Log.d("myTag", "Alarm is already active");
        }
  }

您應該將鬧鍾設置為在8:00和22:00之間恢復,就像您提到的那樣:

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+10000, 60000,pendingIntent); 

這將每分鍾重復一次。 但是您必須明確取消警報。 您可以在下載完成后取消它,方法是檢查它是否已經22:00。 或者在22:00觸發另一個警報。 否則它不會停止。

使用alarmManager.cancel (pendingIntent)

在此處進行說明: http : //developer.android.com/reference/android/app/AlarmManager.html#cancel(android.app.PendingIntent

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM