FusedLocation更新可以作为后台服务吗?

时间:2018-08-09 08:20:02

标签: android fusedlocationproviderapi

我有一个用于使用FusedLocationApi来将用户的位置频繁发送到服务器的类。此类中设置了用于获取位置更新和与服务器通信的所有方法,但当我要运行此类时,我调用了一个后台服务,然后在其中使用该类。

使用FusedLocationApi.requestLocationUpdates,该位置已正确发送到服务器,并且可以从此服务中看到 Toast 。但是当我检查android系统上的Running服务时,我的应用程序未在此处列出。

我的问题是,为什么我的服务不再运行但位置正在更新? FusedLocation服务本身就是后台服务吗?我是否需要通过后台服务经常调用它以使其保持活动状态,或者可以在活动中调用它,甚至在关闭应用程序后也可以使其继续运行?

这是我在自己的服务中使用类的方式:

public class LocationService extends Service {

    FusedClass mylocation=new FusedClass(this);

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        if (intent.getAction().equals("turnOn")) {
            HandlerThread handlerThread = new HandlerThread("LocationThread");
            handlerThread.start();

            Handler handler = new Handler(handlerThread.getLooper());
            handler.post(new Runnable() {
                @Override
                public void run() {
                    mylocation.LocationStartPoint();
                }
            });
        }
        if (intent.getAction().equals("turnOff")) {
            stopSelf();
        }
        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        //TODO for communication return IBinder implementation
        return null;
    }

编辑:我使用FusedLocationApi.requestLocationUpdatesonLocationChanged从此API获取位置更新。

0 个答案:

没有答案