2013-12-19 18 views
1

我想製作一個每秒更新一次(更多電池消耗)或最小(更少電池消耗)的控件。爲什麼Alarm Manager只能在30分鐘內更新?

我也跟着在this thread

,但只在每30分鐘運行。

我配置了一次onUpdate運行後,它在1分鐘內更新,並且onReceived每隔30分鐘運行一次 。

誰能告訴我我做錯了什麼?

+1

您還沒有表現出任何代碼,因此除了缺少的代碼,我們不知道你做錯了什麼......我 – Veger

回答

0

你沒有做錯任何事情,小部件服務確實每30分鐘更新一次(最低)。

要使其更新更快,您需要使用AlarmManager或您自己的將調用該服務的應用程序。與soulreaver答案不同,報警管理器的工作時間少於1分鐘。

+0

這這是工作: am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis的(),1000 * 60 * 10,pi); // Millisec * Second *分鐘 更改了代碼及其工作。 –

+0

謝謝Babibu。並感謝大家。 –

+0

這不適用於API 19+。 – Kristopher

2

根據我的經驗,AlarmManager在時間間隔低於1分鐘時效果不佳(或根本不能)。再說:

注:報警管理器是爲要在有特定時間運行 您的應用程序代碼的情況下,即使你的應用程序 當前未運行。對於正常的定時操作(ticks, 超時等),使用Handler更容易,效率更高。

此外:

注:與API開始19(KITKAT)報警輸送是不精確的:操作系統 將以便最小化喚醒和電池使用移位警報。有 是新的API來支持需要嚴格交付 保證的應用程序;請參閱setWindow(int,long,long,PendingIntent)和setExact(int,long,PendingIntent)。其中 targetSdkVersion早於API 19的應用程序將繼續看到 之前的行爲,在該行爲中, 請求時所有報警均準確傳送。

相關問題