当每个页面打开关闭的时候在栈中对Activity增加和删除管理
在BaseActivity中对Activity进行管理
public abstract class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityCollectorUtils.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollectorUtils.removeActivity(this);
}
}
activity活动管理工具类
public class ActivityCollectorUtils {
private static LinkedList<BaseActivity> queue = new LinkedList<BaseActivity>();
public static void addActivity(BaseActivity activity) {
queue.add(activity);
}
public static void removeActivity(BaseActivity activity) {
queue.remove(activity);
}
public static void finishAllActivities(BaseApplication mApplication, Context context) {
for (BaseActivity activity : queue) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
public static void finishAllActivitie(Context context) {
for (BaseActivity activity : queue) {
if (!activity.isFinishing()) {
activity.finish();
}
}
}
public static BaseActivity getLastActivity(){
if(!queue.isEmpty()){
return queue.getLast();
}
return null;
}
}