Back Button Exit Confirmation in Android Activities
In Android applications, it is common to require users to press the back button twice to exit the activity. This behavior is known as "double-back-to-exit". While it may seem like a built-in feature, it is not directly accessible through any specific class or method.
Custom Implementation
To implement this functionality, you can create your own logic within the activity's onBackPressed() method. Here's an example in Java:
<code class="java">boolean doubleBackToExitPressedOnce = false; @Override public void onBackPressed() { if (doubleBackToExitPressedOnce) { super.onBackPressed(); return; } this.doubleBackToExitPressedOnce = true; Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show(); new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { @Override public void run() { doubleBackToExitPressedOnce=false; } }, 2000); } </code>
In Kotlin, you can achieve the same result with the following code:
<code class="kotlin">private var doubleBackToExitPressedOnce = false override fun onBackPressed() { if (doubleBackToExitPressedOnce) { super.onBackPressed() return } this.doubleBackToExitPressedOnce = true Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show() Handler(Looper.getMainLooper()).postDelayed(Runnable { doubleBackToExitPressedOnce = false }, 2000) }</code>
In these implementations, we have a boolean flag (doubleBackToExitPressedOnce) that keeps track of whether the user has already clicked the back button. If the flag is true, the activity exits. Otherwise, we set the flag to true and display a toast message, giving the user a chance to cancel the exit action.
To avoid infinite back button clicks, we use a Handler to reset the doubleBackToExitPressedOnce flag after a short delay (e.g., 2 seconds).
The above is the detailed content of How to Implement Double-Back-to-Exit Behavior in Android Activities?. For more information, please follow other related articles on the PHP Chinese website!