类中的AlarmManager调用方法

时间:2013-06-29 20:50:43

标签: android android-intent alarmmanager android-alarms

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

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

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

我希望AlarmManager能够做类似的事情。但是看起来我必须定期调用另一个类,而不是简单地让我在同一个类中设置类似Timer的函数。在我的情况下,在同一个类中执行它很重要,因为我给了一个LocationClient两分钟来连接。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

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