0

私はスレッドを持っています:

handlerStoper.post(new Runnable() {

                        @Override
                        public void run() {
                            startTime.setText(""+count);
                            startTime.invalidate();
                            count++;
                            handlerStoper.postDelayed(this, 1000);

                        }
                    });

このスレッドを別の場所で停止するにはどうすればよいですか?

4

4 に答える 4

4

呼び出す必要があるハンドラーからすべてのコールバックを削除するには:

handlerStoper.removeCallbacks(null);

引数を使用すると、null すべての Runnable が削除されます。特定のランナブルを削除する場合は、削除するランナブルのインスタンスをパラメーターとして指定する必要があります。

public final void removeCallbacks (Runnable r)

API レベル 1 で追加

メッセージ キューにある Runnable r の保留中の投稿を削除します。

http://developer.android.com/reference/android/os/Handler.html#removeCallbacks(java.lang.Runnable)

于 2013-07-15T10:26:56.467 に答える
1
public void run() {
startTime.setText(""+count);
startTime.invalidate();
count++;

if(flag){

                        handlerStoper.postDelayed(this, 1000);

     }
}

スレッドを停止する場合は、フラグ値を false に設定します。

于 2013-07-15T10:28:04.170 に答える
0

public final void removeCallbacks (Runnable r)

API レベル 1 で追加

メッセージ キューにある Runnable r の保留中の投稿を削除します。

removeCallbacks@blackbelt Sugested として使用するか、実行可能なインスタンスをパラメーターとして渡します。

    handlerStoper.removeCallbacks(null);

http://developer.android.com/reference/android/os/Handler.html#removeCallbacks(java.lang.Runnable)

于 2013-07-15T10:27:41.103 に答える