Android中关闭所有Activity

一、创建类ActivityCollect,在这个类中编写addActivity,removeActivity和finishAll等方法。

package com.example.project_broadcast;

import android.app.Activity;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 17/08/16.
 */

public class ActivityCollector {

    public static List<Activity> activities = new ArrayList<>();

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

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

    public static void finishAll(){
        for (Activity activity:activities){
            if (!activity.isFinishing()){
                activity.finish();
            }
        }
    }
}

二、创建类BaseActivity,继承AppCompatActivity,并重写onCreate,onDestroy

package com.example.project_broadcast;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;

/**
 * Created by Administrator on 17/08/16.
 */

public class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ActivityCollector.addActivity(this);
    }

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

}

三、让所有的Activity都继承BaseActivity

然后就可以在你所希望的地方调用finishAll方法。

ActivityCollector.finishAll();

猜你喜欢

转载自blog.csdn.net/PErryiii/article/details/77281250