我构建了应用程序,它使用服务和广播接收器在后台向服务器提供位置更新。我放置了运行位置方法的计时器(每 X 分钟运行一次)。它包括获取纬度、经度和使用 API 调用更新到服务器。我有一个问题和疑问。有一个清单。
1.当设备处于待机模式或睡眠模式时,我的计时器进入睡眠状态
2.如果用户上次位置和当前位置距离 500 米或更大,我必须更新位置。
3.我想知道多少分钟或秒的设备进入睡眠模式?
4.我的计时器在运行 devoce 模式下运行比为什么在设备睡眠模式下停止或睡眠更好?
我的计时器任务
class TimeDisplayTimerTask extends TimerTask {
@Override
public void run() {
// run on another thread
mHandler.post(new Runnable() {
@Override
public void run() {
location();
notifyUser2();
Log.d("timeeeeeeee22222222", "time22222222");
// display toast
}
});
}
//in oncreate
if (mTimer != null) {
mTimer.cancel();
} else {
// recreate new
mTimer = new Timer();
}
// schedule task
mTimer.scheduleAtFixedRate(new TimeDisplayTimerTask(), 0, NOTIFY_INTERVAL);
计时器运行的正确方法是什么?如果是,那么为什么它在设备处于待机模式或睡眠模式时睡眠?
帮帮我,我搜索了很多网站,但无法得到它。提前致谢