2

時間を追跡するための非常に単純な方法が必要です。基本的には、メソッドが呼び出されたときにタイマーを開始し、その後の設定時間(45〜90秒)で別のメソッドを呼び出す必要があります。

私が読んだことから、ハンドラーは時間を追跡することを処理するための最も効率的な方法です。ただし、2つ目のスレッドが必要だと言う人もいれば、必要ないと言う人もいます。それは確かに大したことではありませんが、私は物事を可能な限りミニマルに保ちたいと思います。したがって、System.getCurrentTimeMillisが、ユーザーが最初のメソッドを呼び出したときよりも一定量高いかどうかを確認するようなことを行う方法はありますか。もちろん、それ以上のユーザー操作は必要ありません。

そうでない場合は、ハンドラーをさらに読み、それらを操作します。ご協力ありがとうございました。

4

2 に答える 2

0

最初のメソッドを呼び出した後、90秒後に2番目のメソッドを呼び出します。

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //here call the second method

            }   

}, 90000);

ただし、ユーザーがリターンをクリックしてアクティビティを終了すると、この遅延後のランナブルはアクティビティを再開するため、そのアクティビティがまだ実行されているかどうかを確認するためにifステートメントを挿入する必要があります...

タイマーが終了する前に1秒ごとに経過した時間を監視する必要がある場合は、このコードを使用できます

new CountDownTimer(90000, 1000) { 

    public void onTick(long millisUntilFinished) { 
        //call to my UI thread every one second 
    } 

    public void onFinish() { 
        //final call to my UI thread after 90 seconds
    } 
 }.start();
于 2011-02-06T04:35:27.963 に答える
0

TimerTaskとメソッドpostDelayedを使用します。良い説明については、ここを参照してください:

http://android-developers.blogspot.com/2007/11/stitch-in-time.html

于 2011-02-06T01:37:12.557 に答える