android 完全退出应用程序

来源:互联网 发布:成都网络维护培训学校 编辑:程序博客网 时间:2024/05/26 09:57

android 退出应用程序会调用android.os.Process.killProcess(android.os.Process.myPid())
或是System.exit(0),这只是针对第一个Activity(也就是入口的Activity)时生效。如果有A,B,C
三个Activity,而想在B 或C 中Activity 退出,调用上面的方法,往往会销毁当前的Activity 返回上
一个Activity。当然也可以逐个返回上一个Activity,直到跳转到入口的Activity,最后退出应用程
序。但这样比较麻烦,而且逐个返回的体验并不友好。
网上比较流行的方法是定义栈,写一个ExitApplication 类,利用单例模式管理Activity,在每个在
Activity 的onCreate()方法中调用ExitApplication.getInstance().addActivity(this)方法,在退
出时调用ExitApplication.getInstance().exit()方法,就可以完全退出应用程序了。
ExitApplication 类
代码如下:

view plaincopy to clipboardprint?1 import java.util.LinkedList;2 import java.util.List;34 import android.app.Activity;5 import android.app.Application;67 public class ExitApplication extends Application {9 private List<Activity> activityList=new LinkedList<Activity>();10 private static ExitApplication instance;1112 private ExitApplication()13 {14 }15 //单例模式中获取唯一的ExitApplication 实例16 public static ExitApplication getInstance()17 {18 if(null == instance)19 {20 instance = new ExitApplication();21 }22 return instance;2324 }25 //添加Activity 到容器中26 public void addActivity(Activity activity)27 {28 activityList.add(activity);29 }30 //遍历所有Activity 并finish3132 public void exit()33 {3435 for(Activity activity:activityList)36 {37 activity.finish();38 }3940 System.exit(0);4142 }43 }




原创粉丝点击