Check if back key was pressed in android? Check if back key was pressed in android? android android

Check if back key was pressed in android?


@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    if ((keyCode == KeyEvent.KEYCODE_BACK)) {        Log.d(this.getClass().getName(), "back button pressed");    }    return super.onKeyDown(keyCode, event);}

@Update. If you want to be notified when NewActivity is finished, you have to start it by startActivityForResult(Intent, requestCode). Then, you must override onActivityResult() on MainActivity. Check the requestcode parameter here, if the return code equals the submit code (when you start childActivity), put some code to do your business.

int MYCODE=1000;@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    // Result OK.d.    if (requestCode == MYCODE) {        // do something good    }}


I try the below method to detect the back button pressed on the action bar in activity by the first method and the second one is used to detecting the mobile hardware button back or kill activity button.

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {    switch (item.getItemId()){        case android.R.id.home:            onBackPressed();            return true;        default:            return super.onOptionsItemSelected(item);    }}@Overridepublic void onBackPressed() {    setResult(RESULT_CANCELED);    super.onBackPressed();}


You can override onBackPressed() method in NewActivity which will detect when back button is pressed. And then to inform the MainActivity about it, you can send a boolean flag in a bundle so that MainActivity detects that its opening after NewActivity.

In NewActivity:

       @Override       public void onBackPressed() {                boolean fromNewActivity=true;        Intent mainIntent = new Intent(view.getContext(), MainActivity.class);        Bundle bundleObj = new Bundle();        bundleObj.putString("fromNewActivity", Boolean.toString(fromNewActivity));        mainIntent.putExtras(bundleObj);        startActivityForResult(mainIntent, 0);           }

In MainActivity in onCreate() method :

       Bundle extras = getIntent().getExtras();       boolean fromNewActivity =Boolean.parseBoolean( extras.getString("fromNewActivity"));

Now you can check if the MainActivity is opened after NewActivity or not.