2012-05-04 6 views
1

私は方法をonBackPressedいくつかの値を変更したい...と私はこのようにそれをオーバーライドします。ハンドラーpostDelayedは遅れて投稿しませんか?

@Override 
public void onBackPressed() { 

      final Handler backHandler = new Handler(); 
      backHandler.postDelayed(new Runnable() { 
       public void run() { 
        exitCount = 0; 
        Log.d("exitCount", "exitCount: " + exitCount); 
       } 
      }, Toast.LENGTH_SHORT); 

} 

しかし、問題はすぐにハンドラの記事です...遅延はありません。どこが間違っていますか? 申し訳ありませんが、これは不満な質問ですが、私はAndroidでかなり新しいです。前もって感謝します。

答えて

2

Toast.LENGTH_SHORTの値がゼロであるためです。選択した遅延値で定数を宣言してみてください。 here

+0

しかし、私はそれを正確に遅らせる必要があります。Toast.LENGTH_SHORTあなたはmillisがどのようになっているか知っていますか? – yahya

+0

いくつか試して見つけました:) 2000ミリ秒の仕事はちょうどいいです:)ありがとう。 – yahya

+0

2秒と思います。しかし、それはアンドロイドの実装で変わる可能性があります – Blackbelt

1

アクティビティのハンドラ部分(またはUIスレッド用でない場合はメッセージを投稿するスレッドの一部)を作成し、値が0のToast.LENGTH_SHORTではなくミリ秒の遅延を使用しますそれは即座に起こります。

0

次のコードを使用してください。うまくいきたいと思います。

runOnUiThread(new Runnable() { 

      @Override 
      public void run() { 
       backHandler.postDelayed(new Runnable() { 
       public void run() { 
        exitCount = 0; 
        Log.d("exitCount", "exitCount: " + exitCount); 
       } 
      }, Toast.LENGTH_SHORT); 
      } 
     }); 
関連する問題