2017-03-25 15 views
0

私はいくつかのコードを数秒ごとに実行するために単純なRunnableを取得しようとしていますが、実行することはできますが、停止することはできません。以下のコードは、2つのコールstartDbChecking()stopDbChecking()を示しています。私はコードブロックにそれらを配置して、私が試みていることを示しています - コードの設定方法ではありません。Android Java Runnableは停止しません

public class MainActivity extends TabActivity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     startDbChecking(); // will run this no problem 
     stopDbChecking(); // but will not stop 
    } 

    public void startDbChecking() { 
     handler.post(runnableCode); 
    } 

    public void stopDbChecking() { 
     handler.removeCallbacks(runnableCode); 
    } 


    private Runnable runnableCode = new Runnable() { 
     @Override 
     public void run() { 
      // Do something here on the main thread 
      System.out.println("OK"); 

      handler.postDelayed(runnableCode, 2000); 
     } 
    }; 
} 
+0

を停止するので、あなたは 'onStart'と' onStop'で 'stopDbChecking'で' startDbChecking'を呼び出しているし、まだそれが動作しませんか? – pskink

+0

はい。私はそれをやめようとするまでうまくいくと思う。 – user7763438

+0

[this](http://pastebin.com/CLW5hrAU)が動作していることを確認してください – pskink

答えて

1

あなたの活動でこれを試してみてください:実行可能

protected void onStop() { 
    super.onStop(); 
    handler.removeCallbacks(runnableCode); 
} 
+0

ありがとう、しかしまだ運がない.. – user7763438

関連する問題