1

time&timertask、handler&runnables を試しましたが、特定の時間後に関数が呼び出されることはありません。これを取り除くのを手伝ってください。

when = System.currentTimeMillis();
t1 = new Timer();
tt = new TimerTask(){@Override public void run(){ systemClick();}};
t1.scheduleAtFixedRate(tt, when+interval, interval);

そしてこれ:

final Handler myHandler = new Handler();

    Runnable runnableforadd  = new Runnable() 
    {
        public void run() 
        {
            systemClick();              
            myHandler.postDelayed(this, interval);
        }   
    };
    myHandler.postDelayed(runnableforadd, when + interval);

最初と 2 番目の両方を onCreate() で実行します。systemClick()実際に一度でも呼び出されることはありません(Toastをそこに入れました)。スレッドがよくわかりません。

systemClick- システムがボタンのクリックを実行する関数です - そこでmyButton.performClick()呼び出されます (および他の関数も)。

どうすればこれを解決できますか?

ありがとう

4

2 に答える 2

1

遅延時間の値は、メソッドが待機する値にする必要があります。たとえば、1 分待ってからメソッドを呼び出したい場合は、60000 を渡します。

myHandler.postDelayed(runnableforadd, 60000);

現在、 System.currentTimeMillis() である遅延時間に「待機」を追加しています。これは、メソッドが約「1338900000000」ミリ秒後に呼び出されることを意味します

于 2012-06-05T21:17:58.190 に答える
0

あなたは試しAlarmManagerましたか?AlarmManager は、一定期間後にコードを実行するのに役立ちます。

于 2012-06-05T21:14:40.077 に答える