我想给LocationClient一个两分钟的时间来连接,然后调用getLastLocation。最初,我使用Timer(和TimerTask)实现了这一功能,但由于Timers在sleepmode中不工作,我想将其转换为AlarmManager。不过,考虑到AlarmManager会调用另一个类,我对于如何做到这一点感到有些困惑,而我想保持在同一个类中,只是延迟了两分钟的时间。AlarmManager调用同一类的函数
这是它如何看起来与计时器。
Timer theTimer = new Timer();
theTimer.schedule(new TimerTask() {
@Override
public void run() {
if(checkIfGooglePlay() && checkTime()) {
getPostLocation();
stopSelf();
mLocationClient.disconnect();
}
}
}, TWO_MINUTES);
AlarmManager可以使用pendingIntent调用相同的类 –
因此,我可以调用mLocationClient.connect(),然后创建一个PendingIntent,并在该类上设置两分钟的AlarmManager? – NumenorForLife
我不知道你的正确要求,但是我知道了什么程度,你应该使用一个Service类来完成这个任务。可以使用AlarmManager类或以正常方式唤醒,使用界面与您的活动中的服务进行通信... –