簡體   English   中英

AlarmManager - 如何在每小時的頂部重復鬧鍾?

[英]AlarmManager - How to repeat an alarm at the top of every hour?

我想要每小時開一次活動(5:00,6:00,7:00等)。 我嘗試使用線程的持久后台服務,但它不是正確的解決方案,因為:

  • 電池消耗
  • 服務終止,由於android內存管理

所以我正在嘗試使用AlarmManager。 如果我將警報設置為在X秒內觸發(使用“set”方法),它就可以工作。 但是如何在每小時的頂部重復一次事件(使用“setRepeating”方法),直到警報被取消?

謝謝!

設置警報時,您有兩次:第一個觸發時間和下一個觸發間隔。

然后,您必須計算下一個小時的剩余毫秒數,然后為重復間隔設置一個小時。

// We want the alarm to go off 30 seconds from now.
long firstTime = SystemClock.elapsedRealtime();
firstTime += remainingMilisecondsToTopHour;
long a=c.getTimeInMillis();

// Schedule the alarm!
AlarmManager am = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME,
c.getTimeInMillis(), 1*60*60*1000, sender);

暫無
暫無

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

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