Android中实现关闭多个界面
- 在全局AppContext中注册界面生命周期监听
//注册界面生命周期监听
registerActivityLifecycleCallbacks(this);
- 自定义ActivityManager管理类
/**
* 界面管理器
* <p>
* 用来保存当前应用所有开启的界面,目的是方便关闭到指定界面
* 例如:在首页,跳转到登录首页,然后跳转到用户名登录界面,登录成功后,需要关闭最后两个界面
*/
public class MyActivityManager {
/**
* 实例
*/
private static MyActivityManager instance;
/**
* 已经显示的界面
* 装在列表里面的目的是
* 当退出后
* 要关闭所有界面
* 因为我们这个应用是只有登录了
* 才能查看主界面
* 之所以使用Set
* 是因为他不会保存重复元素
*/
private static Set<Activity> activities = new LinkedHashSet<>();
/**
* 获取实例
*
* @return
*/
public static MyActivityManager getInstance() {
if (instance == null) {
instance = new MyActivityManager();
}
return instance;
}
/**
* 添加界面
*
* @param activity
*/
public void add(Activity activity) {
activities.add(activity