Intercepting the back button
In an activity you can just override
onBackPressed()
edit: that is api lvl 5+ :/ for 4 and below you gotta override onKeyDown()
By the docs, do not use onBackPressed
if you can. Now is recommended using onBackPressedDispatcher.addCallback(this) {}
. There's a Fragment example:
class MyFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// This callback will only be called when MyFragment is at least Started.
val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
// Handle the back button event
}
// The callback can be enabled or disabled here or in the lambda
}
...
}
Simply override the onKeyDown(int, KeyEvent)
method in your activity and look for the back button. Return true
so that the event is consumed.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Do something here
return true;
}
return super.onKeyDown(keyCode, event);
}
As schwiz pointed out, you'll want to override the onBackPressed()
method in your activity class (http://developer.android.com/reference/android/app/Activity.html#onBackPressed()).
I just wanted to add that if you did want to at some stage continue with or access the standard the back operation (after say, displaying a dialog), then you simply call super.onBackPressed()
or ActivityName.super.onBackPressed()
from anywhere in the Activity.