android之返回键与依次弹出返回栈
来源:互联网 发布:百度网盘会员充值淘宝 编辑:程序博客网 时间:2024/04/29 14:00
本文主要记录一些零碎的东西
在项目里经常需要重新返回键,最常见的就是下面的代码,实现2s内连续按返回键退出应用,但是我使用的是fragment,切换时添加到了返回栈里,返回时我想达到把返回栈里一次弹出来,在退出应用。我这里(extends FragmentActivity)直接贴出我的最终代码。
private boolean isExit = false; //返回按钮// @Override public void onBackPressed() {// super.onBackPressed();// 判断返回栈是否为空 //解决fragment在返回栈里但是不返回问题,感觉有些问题 if (!getSupportFragmentManager().popBackStackImmediate()) { if(!isExit) { isExit = true; Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); new Timer().schedule(new TimerTask() { @Override public void run() { isExit = false; } }, 2000); } else { finish(); } } }其实不难发现,按正常思路直接重新返回键的方法,不会弹出返回栈的内容,而是执行我们的2s退出程序,发现直接使用android自带的方法,可以弹出返回栈的内容,但是退出应用时没有我们想要的效果。于是想着两个结合起来,开始查看源码
FragmentActivity 里返回键执行的方法
public void onBackPressed() { if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) { supportFinishAfterTransition(); } }supportFinishAfterTransition()这个是应用的退出方法,不是这里本人关心的地点,只要是上面的判断条件。
看看官方的解释
android.support.v4.app.FragmentManagerpublic abstract boolean popBackStackImmediate()Like popBackStack(), but performs the operation immediately inside of the call. This is like calling executePendingTransactions() afterwards.Returns:Returns true if there was something popped, else false.哈哈,Returns true if there was something popped, else false. 也就是说只要我返回栈里有something,就返回true,于是就有了上面的代码,再结合上一篇 android之fragment活动栈单例,不止是fragment,正常的activity也可以,个人感觉就可以完美(把返回栈里依次弹出后再退出应用)实现退出啦
0 0
- android之返回键与依次弹出返回栈
- Android开发 之 监听返回键,弹出一个退出对话框
- Android学习之任务与返回栈
- cocos2dx android返回键- 弹出退出对话框
- 【Android】各式各样的弹出框与对菜单键、返回键的监听
- 关于android中两次返回键退出客户端与弹出dialog方式退出客户端代码
- Android开发禁止返回键与禁止返回上一次
- Android 如何监听返回键,弹出一个退出对话框
- android弹出对话框时对返回键的监听细节
- android长按返回键弹出关机框
- android长按返回键弹出关机框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 监听返回键,弹出确认退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Android 如何监听返回键,弹出一个退出对话框
- Sublime 设置透明方法
- 再谈用strace来看进程的动态调用-------顺便说说用strace来定位core dump
- CodeForces 660 B. Seating On Bus【模拟】
- 教你快速把项目提交到github或者oschina中去或者快速把网上的项目下载下来并可控制版本
- Google Best reports series - Account Recovery XSS 过程分析
- android之返回键与依次弹出返回栈
- T-SQL:表的创建和管理
- Altium Designer原理图放置差分信号
- 字符串处理之字符串流的创建
- 设置应用栏(Setting Up the App Bar)
- C++实践参考:数组作数据成员
- 每天一个设计模式之装饰者模式
- QUSTOJ 1713 线段树
- 使用文件流ADS 及 JavaScript 进行钓鱼攻击