0

我想使用 AlarmManager 来调用一个已经被另一个 AlarmManager 定期调用的类中的特定方法。实际上,我想使用 AlarmManager 而不是 Timer,因为当电话未处于活动状态时,会忽略 Timer 的延迟。所以,现在不要让计时器做这样的事情......

Timer theTimer = new Timer();
    theTimer.schedule(new TimerTask() {
        @Override
        public void run() {
            if(checkIfGooglePlay()) {
                getPostLocation();
                stopSelf();

                mLocationClient.disconnect();
            }
        }
    }, TWO_MINUTES);

我希望 AlarmManager 做一些非常相似的事情。然而,似乎我必须定期调用另一个类,而不是简单地让我在同一个类中设置一个类似计时器的函数。在我的情况下,在同一个班级内进行此操作很重要,因为我给 LocationClient 两分钟的时间来连接。

感谢你的帮助!

4

1 回答 1

0

我不确定你为什么需要给 LocationClient 两分钟的时间来连接。通常它不应该花那么长时间。此外,调用 LocationClient.connect() 是同步的,因此它会立即返回。如果连接由于某些问题而失败,则调用 onConnectionFailed() 方法。无需等待。

如果您解释了您要尝试使用位置检测做什么,这可能会有所帮助。我们也许可以为您提供不同的策略来追求。有时,当您改变方法时,一切都会变得更加简单。

于 2013-06-29T22:36:44.553 回答