Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一段时间后,融合定位API服务被Android终止_Android_Foreground Service_Fusedlocationproviderapi_Android Fusedlocation_Location Updates - Fatal编程技术网

一段时间后,融合定位API服务被Android终止

一段时间后,融合定位API服务被Android终止,android,foreground-service,fusedlocationproviderapi,android-fusedlocation,location-updates,Android,Foreground Service,Fusedlocationproviderapi,Android Fusedlocation,Location Updates,对于位置更新,我使用了FusedLocationAPI,但似乎一些Android手机在一段时间后正在扼杀前台服务。如何运行前台服务并确保它们不会被Android终止 public class LocationUpdatesService extends Service { public class LocalBinder extends Binder { public LocationUpdatesService getService() { return Locat

对于位置更新,我使用了FusedLocationAPI,但似乎一些Android手机在一段时间后正在扼杀前台服务。如何运行前台服务并确保它们不会被Android终止

public class LocationUpdatesService extends Service {

 public class LocalBinder extends Binder {
    public LocationUpdatesService getService() {
        return LocationUpdatesService.this;
    }
}

private final IBinder mBinder = new LocalBinder();

@Override
public void onCreate() {
    createFusedLocationClient();
    createFusedLocationRequest();
    createLocationCallback();

    startForeground(NOTIFICATION_ID, createAutoUnlockEnabledNotification());
}

private void createFusedLocationClient() {
    locationClient = LocationServices.getFusedLocationProviderClient(getApplicationContext());

}

private void createFusedLocationRequest() {
    locationRequest = new LocationRequest();
    locationRequest.setMaxWaitTime(MAXIMUM_WAIT_TIME);
    locationRequest.setSmallestDisplacement(MAXIMUM_DISPLACEMENT);
    locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    String action = intent.getAction();

    if (action != null && action.equalsIgnoreCase(Constants.REQUEST_LOCATION_UPDATES)) {
        requestLocationUpdates();
    }
    if (action != null && action.equalsIgnoreCase(Constants.REMOVE_LOCATION_UPDATES)) {
        removeLocationUpdates();
        stopSelf();
    }
   
    return START_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
    ContextCompat.startForegroundService(getApplicationContext(), new Intent(getApplicationContext(),
            LocationUpdatesService.class));
    return mBinder;
}

}

非传统的方法是onDestroy再次启动服务。