Fused Location API 服务在一段时间后被 Android 杀死

问题描述

对于位置更新,我使用了 Fused Location API,但似乎有些 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;
}

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...