Android 实现点击两次BACK键退出应用
来源:互联网 发布:java分布式系统架构图 编辑:程序博客网 时间:2024/05/22 13:50
转载自:http://xfenglin.com/a/12007044545.html
在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序。
第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。
public class MainActivity extends AppCompatActivity { //定义一个变量来标识是否退出 private static boolean isExit = false; private Button jump; private static Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit = true; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); jump = (Button) findViewById(R.id.jump); jump.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ exit(); return true; } return super.onKeyDown(keyCode, event); } private void exit() { if (!isExit){ isExit = true; Toast.makeText(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show(); mHandler.sendEmptyMessageDelayed(0,1000); }else { Log.e("bai","成功退出"); this.finish(); System.exit(0); } }}
第二种方法
通过记录用户点击的时间,比较时间差来判断是否需要退出。
public class MainActivity extends AppCompatActivity { private long clickTime = 0; //记录第一次点击的时间 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ exit(); return true; } return super.onKeyDown(keyCode, event); } private void exit() { if (System.currentTimeMillis() - clickTime >2000){ Toast.makeText(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show(); clickTime = System.currentTimeMillis(); }else { this.finish(); System.exit(0); } }}
0 0
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- android实现点击两次back键退出应用
- Android 实现点击两次BACK键退出应用
- Android 实现点击两次BACK键退出应用
- Android实现点击两次Back退出程序
- Android实现点击两次back退出APP
- android 两次点击back键退出程序
- Android点击两次Back键退出程序
- Android 点击back键两次退出程序
- android 点击两次back 键退出app
- android 实现按两次back键提示退出应用界面
- Android 两次按Back键退出应用
- 两次点击BACK键退出应用的效果
- 工具类整理--两次点击BACK键,退出应用的实现
- [Leetcode] Count Numbers with Unique Digit
- Linux基本命令
- Android Studio使用jar包
- HDU5883 欧拉路径与欧拉回路的判定
- DBMS_SCHEDULER包管理计划任务
- Android 实现点击两次BACK键退出应用
- 归并排序
- Android 事件输入系统整体框架
- 注解+动态代理实现bookstore的权限控制
- memcache
- HDU 5887 Herbs Gathering(搜索+剪枝)
- CDH5 新手详细安装教程
- springMvc框架解决返回Json格式中文乱码问题
- java导入excel到数据库