在项目中用工具类AppManager进行对activity的管理和应用的退出。finishActivity()方法代码:
/**
* 结束指定类名的Activity
*/
public void finishActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
}
}
}
当调用此方法finish一个activity时在某些系统的手机会出现闪退情况,并且打印出ConcurrentModificationException异常。
解决方法:
1.在要销毁的activity中添加变量,例如在MybDetailsActivity中添加:
public static MybDetailsActivity instence;
2.在该activity 初始化时
instence = this;
3.销毁时;
AppManager.getAppManager().finishActivity(MybDetailsActivity.instence);