在 只有一个activity的情况下,退出安卓程序只需 用finish();或System.exit(0);

但是如果有多个activity要用另外一种方法


 

之前做了一个应用,有一个跳转加载activity,每次back的时候都会由跳转activity转至主界面。后来做了一个menu想实现退出程序,然后在menu里面实现了System.exit(0),发现无法实现,于是就再跳转加载activity里面添加了finish()方法,呃,结果实现了退出,但是又发现点击back的时候,程序也直接结束了,想了想应该是跳转activity里面finish()的原因。于是在群里问大神,结果解决了这个问题,现在就跟大家分享一下,大牛看到哪里有问题可以指导一下,谢谢。

 

 

大家都知道 Android 的 Activity 是存着历史栈的,比如从 A -> B -> C,C 完成 finish 后回到 B,把所有的Activity 都 finish了,程序就自然退出了。当然在 finish 的同时也需要是否自己程序的其他资源。所以需要想个办法把 Activity 给存起来。然后在程序退出的地方调用它们的 finish()方法。

 

public  staticclassExitApplication extends Application {
 
      private  static ExitApplication instance;
activityList= newArrayList<Activity>();
      
      private ExitApplication() {
      }
      public  static ExitApplicationgetInstance() {
         if (instance == null) {
            instance = new ExitApplication();
         }
         return instance;
      }
 
      public  void addActivity(Activityactivity) {
activityList.add(activity);
      }
 
      public  void exit() {
         for (Activity activity : activityList) {
            activity.finish();
         }
         System.exit(0);
      }
   }

先新建一个这个类。
然后在需要finish的activity里的onCreate()方法内添加

1.  ExitApplication.getInstance().addActivity(this);

最后再在你要结束程序的地方添加

1.  ExitApplication.getInstance().exit();

Ok就这样,实现了退出程序。再一次感谢喜欢分享的大牛们,希望能帮到跟我遇到同样问题的同学们