实现方案:
获取栈内的Activity,点击返回键,如果栈内只有一个Activity,提示“再按一次返回”,在短时间内第二次点击返回键将Activity finish()掉,程序退出。
发现问题:
如果程序内存挤爆(比如内存小的手机,打开相机后,有一定几率内存挤爆)则无法正确获取栈内Activity。
解决办法:
对比其他App,都是用正式登入后的第一个Activity作为退出标识,在此Activity下,执行返回键逻辑。
补充:
我没有使用System.exist(0),因为这会使程序在退出时有一个明显的闪烁,感觉很生硬。
我的解决办法:
用户进入MainActivity之前,可能经历了LauncherActivity,LoginActivity等,让这些Activity在跳转后finish()掉,这样在MainActivity点击返回键时,就可以执行返回逻辑了,因为这时候栈内一定只有这一个Activity。
纸上得来终觉浅,绝知此事要躬行。
网友评论