问题描述
对于位置更新,我使用了 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 (将#修改为@)