I have a Class A which runs activity via startActivityForResult
by passing Intent
to it. In other class, lets say B I get this Intent
and recreate activity by it. How can I listen events for that activity, e.g. activity which was started for result is running and user pressed "back" button so I want to do some action.
How can I do this?
Thank you on advance.
Activity in which i recreate instance of object is not derived from Activity class. It is just ACTIVITY. So I have only object. is there any way to do such stuff with instance of class but not a class?
You should override the method : onBackPressed()
of the Activity
class.
In the activity, where you want to act on "back" button, simply override onKeyDown
(or onKeyUp
) method:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//do whatever you need for the hardware 'back' button
return true;
}
return super.onKeyDown(keyCode, event);
}
Keep in mind that if you want the "back" key to still end your activity, then you'll need to include
setResult(result); //if you want to pass a result to activity A
finish();
somewhere in that conditional before return true;
You can override onDestroy
and put the code there.
Another possibility (and may fit your needs better) is to override onBackPressed
.