最近下了几个apk,貌似连续点击两次返回按钮退出程序已经成为主流了。于是就在网上看了下别人写的,然后我就无语了,这么个功能竟然一长串代码。于是我就自己写了个,效果是一样的:
private long firstTime;
private long secondTime;
private long spaceTime;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
firstTime = System.currentTimeMillis();
spaceTime = firstTime - secondTime;
secondTime = firstTime;
if(spaceTime > 2000) {
Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
return false;
}else{
MainActivity.this.finish();
}
}
return super.onKeyDown(keyCode, event);
}
分享到:
相关推荐
Android 返回键退出代码,第一次提示用户再按一次返回键退出,两秒钟内再按一次则退出程序,否则认为用户取消了退出操作!下下来就可以用,绝对好用哦~~~!!
在Android应用开发中,"再按一次退出程序"是一种常见的用户交互设计,目的是避免用户意外地退出应用程序。这种设计通常会在用户首次按下后退键时显示提示信息,如果用户在短时间内再次按下后退键,应用才会真正退出...
Toast.makeText(this, "再按一次退出应用", Toast.LENGTH_SHORT).show(); firstBackPressedTime = System.currentTimeMillis(); } else { // 2秒内再次按下返回键,退出应用 finish(); } return true; } ...
"再按一次退出" 是一个基于Android平台的项目,它涉及到Android应用开发中的用户交互设计。在Android系统中,为了防止用户意外关闭应用程序,通常会在用户尝试退出时弹出一个对话框,提示用户确认是否真的要退出。这...
- 如果`isExit`为`false`,说明这是第一次按返回键,此时设置`isExit`为`true`,并显示提示消息“再按一次退出程序”,同时如果没有创建定时任务,则创建并启动定时任务。 - 如果`isExit`为`true`,说明用户在2秒...
Toast.makeText(this, "再按一次退出应用", Toast.LENGTH_SHORT).show(); firstBackPressTime = System.currentTimeMillis(); // 记录第一次点击时间 } ``` 这段代码的工作原理是:当用户第一次按下返回键时,...
Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() { @Override public void run() { backPressCount = 0; } }, TIME_INTERVAL); } else { ...
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() { @Override public void run() { finishAffinity(); // 结束所有栈顶的Activity,达到退出...
Android 实现按两次返回键退出程序(两种方法) 第一种方法: // 是否退出程序 private static Boolean isExit = false; // 定时触发器 private static Timer tExit = null; 第二种方法: public boolean ...
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); // 提示用户再按一次退出 System.out.println("isexit2" + isExit); if (!hasTask) { // 如果没有定时任务正在执行 System.out.println...
个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: 代码如下: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == ...
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; } return super...
Toast.makeText(this, "再按一次退出程序!", Toast.LENGTH_LONG).show(); } else { // 结束当前Activity this.finish(); } return true; } return super.onKeyDown(keyCode, event); } ``` - **判断返回...
Toast.makeText(this, "再按一次退出应用", Toast.LENGTH_SHORT).show(); lastBackPressedTime = System.currentTimeMillis(); // 更新最后一次按返回键的时间 } ``` 在这个代码片段中,我们创建了一个变量`...
如果超过2秒没有再次按下回退键,就显示一个Toast提示用户“再按一次退出程序”,并更新`lastBackPressedTime`为当前时间。 3. 使用`finishAffinity()`方法而不是`finish()`是因为`finish()`仅会关闭当前Activity,...
因此,要完全退出程序,需要确保栈中的所有Activity都被清理。 广播接收器(BroadcastReceiver)在Android中是一种重要的组件,它可以监听并响应系统或自定义的广播事件。我们可以利用它来监听特定的退出信号,比如...
// 第一次按下返回键,显示退出提示 Toast.makeText(this, "再次点击退出程序", Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() { @Override public void run() { // 2秒后,如果用户...
Toast.makeText(this, "再按一次退出应用", Toast.LENGTH_SHORT).show(); // 提示用户 new Handler().postDelayed(new Runnable() { @Override public void run() { doubleBackToExit = false; // 延迟一段时间...