上下文:如何创建某种 Timer/AlarmManger 机制,允许 LocationClient 在轮询位置之前连接两分钟。下面我粘贴了我在轮询位置之前延迟两分钟的尝试,但在睡眠模式下它似乎不起作用。
可能的解决方案:我可以使用 AlarmManager。然而,这将迫使我创建一个 SECOND 服务,然后使引用单个 LocationClient 变得非常复杂。我也可以按照这个人的方法(在后台服务中使用 Google Play Services LocationClient),在 onConnected 方法中,他执行位置轮询。
我会喜欢关于我应该研究什么的任何建议
在我的 onStartCommand 方法中...
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "");
wl.acquire();
//Getting and Posting Location
Log.i("localwordservice", "Creating and Connecting mLocationClient");
mLocationClient = new LocationClient(this, this, this);
mLocationClient.connect();
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask() {
@Override
public void run() {
if(checkIfGooglePlay()) {
System.out.println("TIMER is now iniating post location");
getPostLocation();
System.out.println("wake lock being released!");
wl.release();
System.out.println("The Service is being stopped!");
stopSelf();
}
}
}, TWO_MINUTES);