最近推出的应用程序都包含了按两次后退按钮físico como virtual
退出应用程序的事实,显示一条消息“再按一次退出”。
我实现了以下内容:
在MainActivity
main 中,我声明canExitApp
要设置的全局变量是否曾经被按下。
public class MainActivity extends AppCompatActivity {
...
private boolean canExitApp = false;
...
在该方法中,我onBackPressed
检查状态变量是否为 atrue
它退出应用程序,如果它在其中false
显示带有 a 的消息toast
。
@Override
public void onBackPressed() {
//super.onBackPressed();
if (!canExitApp) {
canExitApp = true;
Toast.makeText(this, getString(R.string.app_back_pressed_exit), Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
canExitApp = false;
}
}, 2000);
} else {
super.onBackPressed();
}
}
它将允许用户 X 秒按下以再次退出。
现在它只适用于活动。
如何添加对“片段”的支持,以便如果堆栈上没有剩余,它会检测是否要完全退出?
例如,如果我使用加载片段的侧边菜单,我在它们之间导航,考虑到如果堆栈中有一个,它将显示它,直到它达到 0,我希望双击退出工作。
我不喜欢使用线程来更改变量,而是使用基于时间的比较
System.currentTimeMillis()
。以下代码让您有 2 秒的时间再次按 BACK如果有人在 android 中遇到此问题但使用 Fragments 您只需要检查堆栈是否为空即可继续检查双回
我刚刚找到了一个库
Presione de nuevo para cerrar
: 关闭库。它的使用非常简单,只应在事件中添加onBackPressed
:它将显示消息
Press back again to close
并且用户有 3 秒钟的时间,如果他再次按下后退按钮,应用程序将关闭。文本可以通过以下方式进行个性化:
基于 Shutdown 库,我创建了以下类
它的用途
你可以试试这个: