I think you know the architecture of application where activities are being added like stack i.e, LIFO (Last In First Out). Backpress will pop last activity from the memory stack and you are able to view previous activity. In Android we can make changes to this default behavior of an android activity by either overriding onBackPressed() or onKeyDown() method in Activity class.
Following are the 2 methods that i mentioned above,
Method 1: Override onBackPressed()
When you press back button on the device this function gets called and the taking you to the previous activity performed by calling the super class function i.e, super.onBackPressed()
. Without this function being called nothing happens so if you want to disable backpress then override the onBackPressed()
and comment the calling to super class.
Open your Activity
class
@Override public void onBackPressed() { // super.onBackPressed(); commented this line in order to disable back press //Write your code here Toast.makeText(getApplicationContext(), "Back press disabled!", Toast.LENGTH_SHORT).show(); }
Method 2: Override onKeyDown()
This is an another solution. This is also part of the process being done when someone presses the back button. But here we catch the user input i.e, keypress before reaching to onBackPressed()
. The idea behind this method is to detects whether it is a back button key press then break the flow of execution.
Open your Activity
class
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { super.onKeyDown(keyCode, event); return true; } return false; }