Tuesday, December 8, 2015

onBackPressed add double tap exit

  • Android not provided double tap supported events so i have generated manually using handler.
  • handler provided using postDelayed() method  to delay post to time set by developer.
  • delay time set in milliseconds and 1000 milliseconds == 1 second. 


public class MainActivity extends Acitivity{

int count =0;

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

   }

  @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        if (count == 0)
            count = 1;
        else
            count = 2;
        android.os.Handler h = new android.os.Handler();
        h.postDelayed(new Runnable() {
            @Override
            public void run() {
                if (count == 2) {

                    this.finish();
                   // Just Put Your Code for Exit
                    Log.d("DoubleTap", "Exit");
                }
                count= 0;
            }
        }, 500);//You can set double tap interval, currently set half second

        //   super.onBackPressed();
    }

}

1 comment:

  1. Thanks for this, I followed your method but used the delay to reset the counter instead.

    int backPressed=0;
    @Override
    public void onBackPressed() {
    // This will be called either automatically for you on 2.0
    // or later, or by the code above on earlier versions of the
    // platform.
    if (backPressed == 0) {
    Toast.makeText(getApplicationContext(), "Tap again to exit", Toast.LENGTH_SHORT).show();
    backPressed=1;
    android.os.Handler h = new android.os.Handler();
    h.postDelayed(new Runnable() {
    @Override
    public void run() {
    backPressed=0;
    }
    }, Toast.LENGTH_SHORT);//You can set double tap interval, currently set half second
    } else
    finish();
    }

    ReplyDelete