我正在製作一個應用程序,使用ActivityRecognition API在後臺跟蹤用戶活動,並且如果用戶在指定的時間段(例如1小時)內保持在同一地點,則系統將通知告訴用戶去散散步。我已經實現了活動識別,但僅限於應用程序打開時的情況。顯然,Google API客戶端需要保持連接才能發送活動更新。我的問題是 - 對於後臺的活動跟蹤,什麼是更好的解決方案:背景中的活動識別
1)要在主要活動(或單獨活動)中實施AlarmManager,以便在30秒內喚醒活動,請將Google API Client連接到Play服務,然後將PendingIntent發送到IntentService以進行活動分析
2)創建單獨的Service(而不是IntentService)以在後臺(獨立線程)上持續運行,這將保持API Client連接,並將活動更新發送到IntentService。因此,該系統將有2項服務:1)將API客戶端連接到Play服務並定期向IntentService發送更新以進行分析的服務; 2)IntentService用於接收來自Service的活動更新並分析數據。
3)其他的一些解決方案(由你們提供)
評論:我的導師建議我使用AlarmManager,但您通常使用的東西像網絡更新,因此間隔一般在10分鐘以上,而我需要30秒 - 1分鐘。所以我猶豫使用它。
我也在這裏看到過很多類似的問題,但我還沒有找到明確的答案。
你有沒有考慮過使用Geofences或使用喚醒鎖監控加速度計? – Veener
類似於http://stackoverflow.com/questions/28380527/detect-phone-movement-when-screen-is-off的問題 – Veener