2017-03-04 11 views
0

戻るボタンを押したときに遅延/意図が処理されないようにしたい。私はいくつかのスレッドを検索しましたが、私は同じハンドラロジックを持っていないと思います。私はそれが謝罪します。あなたがHandlerとどこかRunnableの両方への参照を保存する必要があり、その後、あなたがキャンセルするHandlerremoveCallbacks(Runnable)メソッドを使用することができますAndroid - Handler - インテントを停止するには?

else { 

       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 

         Intent intent = new Intent(MainActivity.this, PollWebView_Gilmore.class); 
         startActivity(intent); 
         finish(); 

        } 

       }, 10000); 
+0

あなたが遅延を必要としない場合だけハンドラを削除し、唯一の意思 –

+0

コードを維持いただきました問題その後、完璧ですか!あなたの問題を説明してください。 –

+0

@AbhishekSingh - ユーザーが押したときに遅延/意図をキャンセルしたいと思います。 –

答えて

1

:ここ

は、私が働いているコードです。保留中の要求。

例コード:

public class MainActivity extends AppCompatActivity { 

    private Handler handler = new Handler(); 

    private Runnable runnable = new Runnable() { 
     @Override 
     public void run() { 
      Intent intent = new Intent(MainActivity.this, MainActivity.class); 
      startActivity(intent); 
      finish(); 
     } 
    }; 

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

     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       handler.postDelayed(runnable, 5000); 
      } 
     }); 
    } 

    @Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     handler.removeCallbacks(runnable); 
    } 

} 
+0

どうすれば "handler.removeCallbacks(runnable);" inside onBackPressed()? –

+0

答えに例を追加しました。 – zsmb13

+0

ありがとうございます。私はすでに "onBackPressed();"のための関数を持っています。私はこれを追加する必要がありますか? –

0

あなたはpressed.YouはonBackPressed()メソッドをオーバーライドすることができます背面の意図を持って何かをしたい場合。

+0

どうすれば "handler.removeCallbacks(runnable);" inside onBackPressed()? –

+0

@Override public void onBackPressed(){ super.onBackPressed(); handler.removeCallbacks(runnable); } – Jack

1

遅延が必要ない場合は、なぜハンドラを使用しますか?ただそれを削除してください!

コール背中のボタンを押すと、この直接

Intent intent = new Intent(MainActivity.this, PollWebView_Gilmore.class); 
startActivity(intent); 
finish(); 

また、以下の記事を読むことでアイデアを得ることもできます。

Android: Proper Way to use onBackPressed() with Toast

How to run a Runnable thread in Android?

+0

私はどのように "handler.removeCallbacks(runnable);" inside onBackPressed()? –

関連する問題