Android完全退出程序
2015-05-28 09:50
239 查看
程序有一个欢迎界面,有多个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(),这样子就实现了完全退出功能,而且不影响返回键功能。代码如下:
package org.bei.aaa;
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 {
privateList<Activity> list = newArrayList<Activity>();
privatestatic ExitApplication ea;
privateExitApplication() {
}
publicstatic ExitApplication getInstance() {
if (null ==ea) {
ea = newExitApplication();
}
returnea;
}
public voidaddActivity(Activity activity) {
list.add(activity);
}
public voidexit(Context context) {
for(Activity activity : list) {
activity.finish();
}
System.exit(0);
}
}
然后在每个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 org.bei.aaa;
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 {
privateList<Activity> list = newArrayList<Activity>();
privatestatic ExitApplication ea;
privateExitApplication() {
}
publicstatic ExitApplication getInstance() {
if (null ==ea) {
ea = newExitApplication();
}
returnea;
}
public voidaddActivity(Activity activity) {
list.add(activity);
}
public voidexit(Context context) {
for(Activity activity : list) {
activity.finish();
}
System.exit(0);
}
}
然后在每个Activity的onCreate方法中调用ExitApplication.getInstance().addActivity(this);,然后在处理退出请求中直接调用ExitApplication.getInstance().exit(this);即可。
相关文章推荐
- 如何完全退出Android程序 (2012-07-20 22:29:26)
- 通过广播使Android程序完全退出
- Android 程序完全退出
- Android程序完全退出的三种方法
- Android开发中完全退出程序
- Android应用开发完全退出程序的通用方法!!!
- Android程序完全退出
- 关于Android完全退出程序
- android完全退出程序的方法
- android完全退出程序
- Android程序完全退出的三种方法
- Android程序完全退出的三种方法
- android点击退出完全退出程序
- android完全退出程序的几种方式
- android实现程序的后台运行 and 完全退出
- Android开发中完全退出程序的三种方法
- android实现完全退出程序
- Android之利用广播实现完全退出程序功能
- Android 完全退出程序的方法
- Android2.2使用广播机制完全退出程序