Android 如何在15秒后从服务启动处理程序以防止应用程序休眠并将位置发送到webservice?

Android 如何在15秒后从服务启动处理程序以防止应用程序休眠并将位置发送到webservice?,android,geolocation,location,android-gps,Android,Geolocation,Location,Android Gps,我正在开发GPS跟踪应用程序,其中我需要在15秒后跟踪位置。我必须使用处理程序从服务类的onStartCommand()启动服务。但在15秒后或一段时间后,处理程序并不总是执行。我还使用了WakeLock来防止应用程序睡眠。如何克服这个问题?简而言之: new Handler().postDelayed(() -> { ... }, 15000); 操作(此处为lambda)将在超时(15000毫秒)后执行 它可能是这样的: new Handler().postDelayed(new R

我正在开发GPS跟踪应用程序,其中我需要在15秒后跟踪位置。我必须使用处理程序从服务类的onStartCommand()启动服务。但在15秒后或一段时间后,处理程序并不总是执行。我还使用了WakeLock来防止应用程序睡眠。如何克服这个问题?

简而言之:

new Handler().postDelayed(() -> { ... }, 15000);
操作(此处为lambda)将在超时(15000毫秒)后执行

它可能是这样的:

new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        //Track my location
    }
}, 15_000);

使用
计时器
而不是
处理程序
,如下所示

new java.util.Timer().schedule(new java.util.TimerTask() {
            @Override
            public void run() {
                //do your task here
            }
        }, 15000);

我已经这样做了,但它并不总是在什么平台上15秒后执行-这可能是打盹模式吗?在Android平台上,这正是为什么这是一个如此糟糕的建议:可能重复