android 连按两次Back键退出 (单Activity多Fragment,保留根Fragment)
2017-09-25 20:30
387 查看
代码
protected boolean doubleBackToExitPressedOnce = false; protected void backStackAndDoubleBackExit() { int backStackEntryCount = 2; int delayMillis = 3 * 1000; if (getSupportFragmentManager().getBackStackEntryCount() > backStackEntryCount ) { // super.onBackPressed(); getSupportFragmentManager().popBackStackImmediate(); } else if (getSupportFragmentManager().getBackStackEntryCount() == backStackEntryCount ) { if (doubleBackToExitPressedOnce) { finish(); } doubleBackToExitPressedOnce = true; Snackbar.make(getRootView(), "please click back button again to exit", Snackbar.LENGTH_SHORT).show(); new android.os.Handler().postDelayed(new Runnable() { @Override public void run() { doubleBackToExitPressedOnce = false; } }, delayMillis ); } }
根据 getBackStackEntryCount(); 方法,判断Fragment返回栈,Fragment数量
使用 popBackStackImmediate() 方法,消除super关键字的限制
添加变量 backStackEntryCount, 存储根Fragment所占数量
Toast 更改为 Snackbar
使用
1 代码复制至BaseActivity2 xxxActivity 继承BaseActivity
3 onbackPressed()方法调用backStackAndDoubleBackExit()方法
end
相关文章推荐
- Android 获取所有Activity,这里演示了用户按两次back键退出app
- Android连续点击两次Back键退出程序
- Android简单实现连点两次Back键退出App
- {转}Android点击两次Back键退出当前程序
- android开发(41) Fragment中使用POP_BACK_STACK_INCLUSIVE达到一次跳转到栈底。类似Activity的 采用FLAG_ACTIVITY_CLEAR_TOP
- Android中连续点击两次BACK键退出程序
- Android 按两次back键退出 -- 效率最高版---见到好东西就转啊!
- Android 两次按Back键退出应用(转)
- Android滑动退出Activity的三方框架swipebacklayout
- android 两次点击back键退出程序
- android使用Activity工具类,做Back退出事件处理
- Android 按两次back键退出 -- 效率最高版
- android,连续点击两次back键退出应用程序
- Android 实现点击两次BACK键退出应用
- android使用Activity工具类,做Back退出事件处理
- Android按back键不退出当前Activity
- Android 实现点击两次BACK键退出应用
- android实现点击两次back键退出应用
- android TabActivity 重写dispatchKeyEvent方法 按返回键back 执行两次的解决方法
- Android实现点击两次back退出APP