在Android退出所有的应用程序中,如果需要退出Activity,但是保留Service,这个时候可以只需要保存所有的Activity,然后逐一退出,但是保留Service仍然在活动。
- public class SuperActivity extends Activity {
- public static ArrayList<Activity> activityList = new ArrayList<Activity>();
- public String TAG = "SuperActivity";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- activityList.add(this);
- Log.i(TAG, activityList.toString()) ;
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- activityList.remove(this);
- Log.i(TAG, activityList.toString()) ;
- }
- /**
- * 退出所有的Activity
- */
- public void exitApp() {
- if (activityList.size() > 0) {
- for (Activity activity : activityList) {
- if (activity != null && !activity.isFinishing())
- {
- activity.finish();
- }
- }
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- }
这样通过判断了解哪些Activity需要退出,如果已经退出则不管,如果没有退出,则将剩下的都给退出