2014-01-27 39 views
2

正如標題中所述,我的問題無法正確控制活動識別請求。我的這樣的代碼:無法更改Google Play服務活動識別的請求間隔

arclient.requestActivityUpdates(ACTIVITY_DETECT_INTERVAL, pIntent); 

的ACTIVITY_DETECT_INTERVAL = 2 * 60 * 1000(2分鐘),

但日誌顯示

01-27 12:21:49.412: I/ActivityRecognitionService(5458): Still 92 
01-27 12:21:54.462: I/ActivityRecognitionService(5458): Still 92 
01-27 12:21:59.492: I/ActivityRecognitionService(5458): Still 69 
01-27 12:22:04.562: I/ActivityRecognitionService(5458): Still 76 
01-27 12:22:09.662: I/ActivityRecognitionService(5458): Still 76 
01-27 12:22:14.592: I/ActivityRecognitionService(5458): Still 92 
01-27 12:22:19.612: I/ActivityRecognitionService(5458): Still 77 
01-27 12:22:24.622: I/ActivityRecognitionService(5458): Still 92 
01-27 12:22:29.672: I/ActivityRecognitionService(5458): Still 92 
01-27 12:22:34.892: I/ActivityRecognitionService(5458): Still 85 
01-27 12:22:39.812: I/ActivityRecognitionService(5458): Still 92 

它原來的時間間隔爲總是5秒。誰可以幫我一把,謝謝。

回答

2

requestActivityUpdates documentation

活動可以被接收更頻繁地比detectionIntervalMillis參數如果另一個應用程序已經以更快的速度還要求活動更新。當活動檢測服務收到當前活動可能發生變化的信號時,它可能也會更快地收到更新,例如設備長時間處於靜止狀態,然後從手機充電器上拔下插頭。

你當然可以過濾掉自己的應用程序中的事件(假設你存儲你接收到事件的最後時間,然後忽略和時間後,再與事件2分鐘),但沒有辦法限制量的傳入活動更新超出了您手機上最耗電的應用程序請求或您的請求,無論哪個更大。

+0

感謝您的回覆。但我使用pendingIntent來觸發特定的intentservice,另一個應用程序的請求如何啓動我的服務?如果間隔時間很短,會大大增加電池的消耗,不是嗎? – Jerome

+0

@Jerome - 如果你運行你的IntentService並且它做了大量的工作,並且你不會忽略更快的間隔更新,那麼肯定會佔用額外的電池使用量,但由於它已經是較低的間隔和低電池壽命那裏,無論您的應用程序是否運行(由於其他應用程序)。 – ianhanniballake

+0

我明白了。但我找不到爲什麼Nexus 5上的時間間隔總是5s,而我的代碼中的間隔在Galaxy S4 mini上不工作,直到我重新啓動手機。 – Jerome

相關問題