Android 优雅地退出App
2017-03-22 15:40
232 查看
原创文章,如有转载,请注明出处:http://blog.csdn.net/myth13141314/article/details/64920258
将退出出口放在MainActivity
singleTop:栈顶复用模式,如果在栈顶就调用onNewIntent复用,从onResume()开始,否则创建新的实例
singleTask:栈内复用,本栈内只要用该类型Activity就会调到栈顶复用,从onResume()开始,并将其之上的所有Activity移除栈
singleInstance:单例模式,除了singleTask的特性,系统会单独给该Activity创建一个栈
主要用到了Activity的启动模式,简单有效, 只需要2步
设置MainActivity的启动模式为SingleTask将退出出口放在MainActivity
原理分析
Activity的四种启动模式
standard:标准模式,每次启动都会创建一个实例singleTop:栈顶复用模式,如果在栈顶就调用onNewIntent复用,从onResume()开始,否则创建新的实例
singleTask:栈内复用,本栈内只要用该类型Activity就会调到栈顶复用,从onResume()开始,并将其之上的所有Activity移除栈
singleInstance:单例模式,除了singleTask的特性,系统会单独给该Activity创建一个栈
我们打开一个App一般都是经过启动页,然后finish启动页跳转到MainActivity,然后再经过一系列的跳转,期间会产生数量不定的Activity,有的被销毁,有的驻留在栈中,但是栈底永远是我们的MainActivity。将MainActivity的启动模式为SingleTask,退出的出口设置在MainActivity,这样一来,用户要退出App时,肯定要回到MainActivity,此时栈里面就只有MainActivity,直接finish退出即可。
最后附上双击退出App的一种实现
//双击退出程序 private static boolean isExit = false; @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(!isExit){ isExit = true; Toast.makeText(this, "再按一次返回键退出程序", Toast.LENGTH_SHORT).show(); new CountDownTimer(2200,2200){ @Override public void onTick(long millisUntilFinished) { } @Override public void onFinish() { isExit = false; } }.start(); }else{ finish(); } return false; } return super.onKeyUp(keyCode, event); }
相关文章推荐
- Android APP新的“优雅”退出方式--EventBus大显身手
- android 如何优雅的退出App
- Android APP新的“优雅”退出方式--EventBus大显身手
- Android填坑之旅(第十六篇)Android优雅解决App应用异常退出并收集日志供开发者调试(总有你想要的,持续收录中......)
- ANDROID 完美退出APP的实例代码
- Android开发全程记录(六)——完美退出APP的方法
- android 退出APP
- Android 系列:单例模式实现一键退出APP
- 【OSC手机App技术解析】- Android完全退出程序
- android自定义广播实现app完全退出
- 【代码】Android 退出 App 方法的完美解决
- Android 完美退出 App (Exit)
- 【Android 一般进阶】如何退出app
- Android重复点击后退,退出app,后台继续运行
- Cordova for android怎样在App中处理退出button事件
- android 完全退出App
- OSC android app 退出方法改进
- Android学习-使用单例模式实现一键退出APP
- Android学习-使用单例模式实现一键退出APP
- Cordova for android如何在App中处理退出按钮事件