У меня возникают проблемы с поиском информации о том, как перенести простой IntentService в WorkManager. Я использую IntentService для получения GPS-координат.
Может ли кто-нибудь помочь мне или порекомендовать мне хорошее руководство?
Спасибо, вот мой код, связанный с этим.
IntentService :
public class LocationReceiverService extends IntentService {
public LocationReceiverService() {
super(LocationReceiverService.class.getSimpleName());
}
@Override
protected void onHandleIntent(@Nullable Intent intent) {
if (intent != null) {
final Bundle extras = intent.getExtras();
if (extras != null) {
final Location location = (Location) extras.get(Constants.LOCATION_RECEIVED);
if (location != null) {
TradeLocationManager.setCurrentLocation(location);
}
}
}
}
}
Метод из Службы, вызывающий IntentService:
private void startLocationUpdates() {
if (!locationUpdating) {
locationUpdating = true;
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
this.mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
final LocationRequest currentLocationRequest = new LocationRequest();
currentLocationRequest.setInterval(UPDATE_INTERVAL)
.setFastestInterval(UPDATE_INTERVAL)
.setMaxWaitTime(0)
.setSmallestDisplacement(0)
.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
final Intent mRequestLocationUpdatesIntent = new Intent(this, LocationReceiverService.class);
this.mRequestLocationUpdatesPendingIntent = PendingIntent.getService(getApplicationContext(), 0,
mRequestLocationUpdatesIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
this.mFusedLocationClient.requestLocationUpdates(currentLocationRequest, mRequestLocationUpdatesPendingIntent);
}
}
Объявление IntentService в манифесте
<service
android:name="com.sagaconsumer.location.LocationReceiverService"
android:enabled="true"
android:stopWithTask="true" />