退出多个活动的Activity
来源:互联网 发布:php 源码加密 代码 编辑:程序博客网 时间:2024/06/07 03:05
当程序有多个activity互相跳转时,想要设置一个menu键,点击后有选择退出的项。尝试了很多的方法,Android的activity在创建之后,也就是调用了onCreate函数之后就进入了一个栈区,将创建了的activity按顺序放进去,finish()和System.exit(0)只能结束当前activity,而不能结束所有。而网上大量流传的所谓终极方法:
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); System.exit(0);
表面上退出了程序进入了手机的主页面,但是当你再次打开此程序的时候就会发现记录了上次使用时的上一个activity,也就是说并没有真正意义的关掉其他的活动。如果在每个startActivity(intent);之后加上finish(this)来结束当前活动。但是带来两个缺点:1、返回键直接退出程序 2、所有的activity每次跳转之后就关闭,也就是说再次创建时需要重新载入,慢而用户体验差。最后,用了一个这样子的方法。 自己写了一个类,就是一个链表来存放所有创建了的activity。而在退出时将链表中的activity全部finish(),这样子就实现了完全退出功能,而且不影响返回键功能。代码如下:
import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.app.Application;import android.content.Context;public class ExitApplication extends Application { private List<Activity> list = new ArrayList<Activity>(); private static ExitApplication ea; private ExitApplication() { } public static ExitApplication getInstance() { if (null == ea) { ea = new ExitApplication(); } return ea; } public void addActivity(Activity activity) { list.add(activity); } public void exit(Context context) { for (Activity activity : list) { activity.finish(); } System.exit(0); }}然后在每个Activity的onCreate方法中调用 ExitApplication.getInstance().addActivity(this);,然后在处理退出请求中直接调用 ExitApplication.getInstance().exit(this);即可。
参考:http://blog.sina.com.cn/s/blog_9805860801013l19.html
- 退出多个活动的Activity
- 退出多个活动
- 退出多个Activity
- 退出多个activity
- 多个Activity的完全退出
- 退出多个Activity的方法
- 一次退出多个Activity的方法
- 打开多个Activity退出的方法
- 安全退出打开的多个activity
- 多个activity的启动与退出
- 随时随地退出启动多个活动的应用
- Android退出多个activity和单个activity的方法
- Android 退出多个Activity | 退出程序
- Android 退出多个Activity | 退出程序
- 如何退出多个Activity
- 多个activity 退出总结
- 退出结束多个Activity
- 安全退出多个activity
- 正则表达式大全
- Oracle中merge into的使用
- Hive并发情况下报DELETEME表不存在的异常
- .h和.cpp
- c++命名规定
- 退出多个活动的Activity
- 我的博文
- 文件读写
- springMVC整合Freemarker例子
- syslog日志服务器架设攻略
- Windows&&Ubuntu双系统机重装Windows后的Ubuntu恢复问题
- 盲源分离的略缩语
- Nginx架构和代码风格
- gets getche getch