2

時間間隔ごとにメソッドを呼び出すハンドラーを作成しました。destroy()でそのハンドラーを削除したいと思います。私が使用するコードは次のとおりです。Oncreate()

private final Handler _handler = new Handler();
public int DATA_INTERVAL = 30 * 1000;
Runnable getData;
 getData = new Runnable()
        {
            @Override
            public void run()
            {
                     recieveData();
            }
        };

 _handler.postDelayed(getData, DATA_INTERVAL);

そしてondestroy()で、私は使用します、

_handler.removeCallbacks(getData);

ただし、removecallbackは機能しません。アクティビティを終了した後に呼び出します。

4

3 に答える 3

10

removeCallbacks(Runnable r) :

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

現在ランナブルを実行していない保留中のメッセージ (Runnables) のみを停止するためremoveCallbacks(..)、現在実行中の Runable を停止する場合は、ユーザーがアプリを終了するときにスレッドを停止するためにブール変数を使用します。

removeCallbacks がrunnable を停止しない場合は、この投稿を参照してください

于 2012-08-16T06:49:41.687 に答える