2

我正在使用Intent Service來監視Geofence轉換。爲此,我正在使用以下來自Sticky Service的呼叫。問題從IntentService移動到JobIntentService for Android O

LocationServices.GeofencingApi.addGeofences(
        mGoogleApiClient, 
        getGeofencingRequest(), 
        getGeofencePendingIntent() 
      ) 

和Pending Intent像下面那樣調用轉換服務(IntentService)。

private PendingIntent getGeofencePendingIntent() { 
     Intent intent = new Intent(this, GeofenceTransitionsIntentService.class); 
     // We use FLAG_UPDATE_CURRENT so that we get the 
      //same pending intent back when calling addgeoFences() 
     return PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    } 

這工作正常前奧利奧。但是,我不得不將我的粘性服務轉換爲JobScheduler,我需要將GeofenceTransitionsIntentService這是一個intentService轉換爲JobIntentService。

話雖如此,我不知道如何返回創建JobIntentService的PendingIntent,因爲我需要調用JobIntentService的enqueueWork。

任何建議/指針,將不勝感激。

+0

我知道發佈網址是不推薦的,因爲網站可以消失。但是,如果任何人都好奇,這裏有一個我一直提到的創建GeoFence的網站示例。 https://www.mytrendin.com/android-geofences-google-api/ – Akshay

+4

使用BroadcastReceiver作爲Geofence API的未決意圖。然後,在由Geofence API觸發後,在此BroadcastReceive中安排一項工作。 –

+0

我想,Android O不建議使用廣播接收器 – Akshay

回答

0

正如@andrei_zaitcev建議的那樣,我實現了自定義的BroadCastReceiver並調用了服務的enqueueWork(),該功能完美無缺。

+0

你會碰巧有一個你的實現的例子嗎?正在尋找類似的解決方案,因爲我將應用升級到Oreo。 – Kyle