Android应用程序的完全退出

   开发的时候遇到应用程序不能完全退出的问题,试了很多办法,finish + System.exit(0) 并不管用。

   最后找到了一个办法(http://hi.baidu.com/tjbaso/item/48935bd818fa734efa576876)

 

无论是在继承Activity还是TabActivity或是ActivityGroup都可以正常退出。

1、使用application存储Acivity

public class MyApplication extends Application {

    private LinkedList<Activity> sAllActivitys = new LinkedList<Activity>();


     public void addActivity(Activity activity){
          sAllActivitys.add(activity);
     }

     public void removeActivity(Activity activity){
          sAllActivitys.remove(activity);
     }

     public LinkedList<Activity> getAllActivitys(){
          return sAllActivitys;
     }

}

2、原先继承Activity改成BaseActivity,TabActivity改成BaseActivity

 

#################################################################

package com.first.activity;

import java.util.LinkedList;

import android.app.Activity;
import android.os.Bundle;


public class BaseActivity extends Activity {

 @Override
 protected void onCreate(Bundle bundle) {
  super.onCreate(bundle);
  ((MyApplication)getApplication()).addActivity(this);
 }

 @Override
 protected void onDestroy() {
  super.onDestroy();
  ((MyApplication)getApplication()).removeActivity(this);
 }


 protected void finishAll() {
  LinkedList<Activity> sAllActivitys = ((MyApplication)getApplication()).getAllActivitys();
  for(Activity activity : sAllActivitys) {
   activity.finish();
  }
  sAllActivitys.clear();
 }

 protected void exit() {
  finishAll();
  System.exit(0);
 }
}

 

有空再研究下Activity的生命周期,还有很多没有掌握的。

 

你可能感兴趣的:(android)