0
我試圖使用Google活動識別API,並且只在活動發生變化時或每30分鐘獲得一次結果(如果活動未更改,則爲+ - 10分鐘或更多)。相反,當我打電話了一塊下面的代碼,我得到活動的識別結果經常在我IntentService
,就像每一分鐘:Google活動識別API調用頻率過高
ActivityRecognition
.ActivityRecognitionApi
.requestActivityUpdates(mGoogleApiClient, 60000 * 30, getSensingServicePendingIntent())
.setResultCallback(this);
的方法來創建PendingIntent
對象:
private PendingIntent getSensingServicePendingIntent(Integer userLabel) {
Intent i = new Intent(mContext, SenseDataIntentService.class);
return PendingIntent
.getService(mContext, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
}
的方法,得到GoogleApiClient
:
private GoogleApiClient buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(mContext)
.addApi(ActivityRecognition.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
return mGoogleApiClient;
}
我知道the official documentation這樣說:
如果另一個應用程序還以更快的速度請求活動更新,則可能比detectIntervalMillis參數更頻繁地接收活動。當活動檢測服務收到當前活動可能發生變化的信號時,它可能也會更快地收到更新,例如設備長時間處於靜止狀態,然後從手機充電器上拔下插頭。
但我只是覺得我得到的更新太頻繁(即使活動沒有改變)。任何解決方案,因爲我想節省一些電池排水。
可能的重複:http://stackoverflow.com/questions/27500602/android-activityrecognitionapi-requestactivityupdates-are-too-frequent-how-can –