2014-02-20 43 views
0

我已經準備好通過文檔,我有一些關於setReating和setInexactRepeating的問題。我正在閱讀其他一些帖子,但我找不到答案。Android AlarmManager setReating和setInexactRepeating

文檔說兩個:

注:爲API 19日,所有重複報警是不準確的。

是否意味着這兩種方法在api 19及以上版本中都完全相同?還有不準確的不準確性?如果有任何延遲,對於下面的警報有什麼影響?

預先感謝。

回答

1

從API 19 [和將來版本]開始,在official documentation的末尾可以讀取所有對setRepeating()的調用,而不是代替setInexactRepeating()。就KitKat和即將發佈的版本而言,這兩種方法完全相同。

延遲不會影響以下涉及到official documentation的報警。

安排具有不精確觸發時間要求的重複警報;例如, 例如,每小時重複一次警報,但不一定在每小時的最高位置有 。由於系統可以調整報警的傳送次數 以使它們同時觸發,避免從設備 中喚醒設備,所以這些報警比傳統上由setRepeating(int,long, long,PendingIntent)提供的嚴格重現更爲省電睡眠不止。

您的鬧鐘的第一個觸發不會在請求的時間之前,但是 在該時間之後的幾乎所有時間段內都不會發生。在 除此之外,,而重複報警的整個週期將爲 要求,報警 任何兩個連續發射之間的時間可能會有所不同。如果您的應用需要非常低的抖動,請使用具有相應窗口的一次性報警 ;請參閱setWindow(int,long, long,PendingIntent)和setExact(int,long,PendingIntent)。

從API 19開始,所有重複警報都是不精確的。由於此方法 自API 3以來已可用,因此您的應用程序可以安全地將其稱爲 並確保其在當前版本和舊版本的Android版本中都會得到類似的行爲。