我想实现后台服务1分钟上报一次定位,能够在手机锁屏休眠时能够正常运行,试了前台服务,电源锁,等各种方法都不行。咕咚,高德等app 的持续录制轨迹不知道是怎么实现的。

解决方案 »

  1.   

    你用startService方式启动Service,手机在休眠时该Service也不会停止运行的
    Intent startIntent = new Intent(this, MyService.class);
    startService(startIntent);
    MyServicepublic class MyService extends Service implements Runnable { public static final String TAG = "MyService";
    private boolean isStop; @Override
    public void onCreate() {
    super.onCreate();
    Log.d(TAG, "onCreate() executed");
    isStop = false;
    new Thread(this).start();
    } @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
    Log.d(TAG, "onStartCommand() executed");
    return super.onStartCommand(intent, flags, startId);
    } @Override
    public void onDestroy() {
    super.onDestroy();
    Log.d(TAG, "onDestroy() executed");
    isStop = true;
    } @Override
    public IBinder onBind(Intent intent) {
    return null;
    } @Override
    public void run() {
    int count = 0;
    while (!isStop) {
    try {
    Thread.sleep(60*1000);
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Log.d(TAG, "执行次数" + (++count));
    //这里写下你1分钟上报一次定位的逻辑
    }
    }
    }
      

  2.   

    楼上的做法可以的,不能正常运行是不是绑定了activity导致service随着activity的生命周期走了?
      

  3.   

    http://blog.csdn.net/qq_35693043/article/details/78114987
    这是我的做法,目前我项目中是这样的。