0

AlarmManager を使用して、別の AlarmManager によって定期的に呼び出されているクラス内の特定のメソッドを呼び出したいと考えています。電話がアクティブに使用されていない場合、タイマーの遅延は無視されるため、事実上、タイマーではなくアラームマネージャーを使用したいと思います。それで、タイマーにこのようなことをさせる代わりに...

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

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

私は、AlarmManager に非常に似たようなことをしてもらいたいと思っています。ただし、同じクラス内でタイマーのような関数を設定するだけでなく、別のクラスを定期的に呼び出す必要があるようです。私の場合、LocationClient に接続するのに 2 分間与えているため、同じクラス内で行うことが重要です。

ご助力いただきありがとうございます!

4

1 に答える 1

0

LocationClient に接続するのに 2 分間待つ必要がある理由がわかりません。通常、それほど長くはかからないはずです。さらに、LocationClient.connect() の呼び出しは同期的であるため、すぐに戻ります。なんらかの問題で接続が失敗した場合、メソッド onConnectionFailed() が呼び出されます。待つ必要はありません。

位置検出で何をしようとしているのかを説明していただけると助かります。追求するための別の戦略を提供できる場合があります。アプローチを変えると、すべてがよりシンプルになることがあります。

于 2013-06-29T22:36:44.553 に答える