Android完全退出程序,不是返回到上一个Activity
来源:互联网 发布:centos kde gnome共存 编辑:程序博客网 时间:2024/05/24 15:38
程序有一个欢迎界面,有多个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)来结束当前活动,这样子实现了menu功能。但是带来两个缺点:1、返回键直接退出 2、所有的activity每次跳转之后就关闭,也就是说再次创建时需要重新载入,慢而用户体验差。
最后,用了一个这样子的方法。
自己写了一个类,就是一个链表来存放所有创建了的activity。而在退出时将链表中的activity全部finish(),这样子就实现了完全退出功能,而且不影响返回键功能。代码如下:
然后在每个Activity的onCreate方法中调用 ExitApplication.getInstance().addActivity(this);,然后在处理退出请求中直接调用 ExitApplication.getInstance().exit(this);即可。
尝试了很多的方法,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)来结束当前活动,这样子实现了menu功能。但是带来两个缺点:1、返回键直接退出 2、所有的activity每次跳转之后就关闭,也就是说再次创建时需要重新载入,慢而用户体验差。
最后,用了一个这样子的方法。
自己写了一个类,就是一个链表来存放所有创建了的activity。而在退出时将链表中的activity全部finish(),这样子就实现了完全退出功能,而且不影响返回键功能。代码如下:
package Utils;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);即可。
0 0
- Android完全退出程序,不是返回到上一个Activity
- android返回到上一个Activity
- android, SurfaceView退出到上一个activity
- 返回到上一个Activity
- Android完全退出程序,退出所有Activity
- Android 返回上一个界面,返回上一个Activity
- android Activity返回数据到上一个Activity
- 笔记:安卓完全退出应用程序出现闪退、返回上一个activity的问题
- 在Fragment中点击退出按钮,退出到登录界面后(按返回键退出程序开始的时候,退出到登录界面按返回键无法退出程序,而是返回到上一个Activity,网上说是没有finish掉上一个Activity)
- Android ActionBar 返回上一个Activity
- Android完全结束Activity并退出程序
- Android完全结束Activity并退出程序
- Android完全退出多个activity程序
- Android完全退出多个activity程序
- Android完全退出多个activity程序
- Android 任意Activity 完全退出程序
- android 返回键完全退出程序
- activity完全退出程序
- SQL注入详解
- 六,可变变量
- POJ 2411 Mondriaan's Dream(状态压缩DP)
- Proxy动态代理
- Struts2 标签的使用
- Android完全退出程序,不是返回到上一个Activity
- ARM 编译选项的默认关系 001
- Android Google Maps 开始
- SSH连接的时候Host key verification failed
- opencv-ios开发笔记6 利用canny简单提取轮廓
- 快速学习者的高效学习策略
- HDU 1058||Uva 136 丑数
- ImageLoader缓存,清空图片
- dom中的事件