==比较的是对象在内存中实际存储的地址,地址相等则可以认为两个对象是相等的。
方法二:
通过两个对象的hashcode是否相等来解决。
我们需要补充一下hashcode相关的信息:
两个对象如果相等,那么他们的hashcode一定相等;
也就是说hashcode不相等,那么这两个对象一定也不相等;
hashcode相等,这两个对象不一定相等。
我们实际操作的步骤如下:
1、通过BaseAppManager搜集Activity的进出栈信息;
2、获取栈顶的Activity(即当前处于用户界面的activity);
3、
(1)在BaseActivity中用==比较this和栈顶Activity是否相等;
(2)在BaseActivity中通过this和栈顶Activity的hashcode的不等,反推这两个Activity是否相等。
新建一个BaseAppManager类,用来管理Activity出入栈:
public class BaseAppManager {
private static final String TAG = BaseAppManager.class.getSimpleName();
private static BaseAppManager instance = null;
private static List mActivities = new LinkedList();
private BaseAppManager() {
}
public static BaseA