刚看到一段代码:
public class MyApplication extends Application {
private List<Activity> activityList = new LinkedList<Activity>();
private static MyApplication instance;
private MyApplication() {
}
public static MyApplication getInstance() {
if (null == instance) {
instance = new MyApplication();
}
return instance;
}
public void addActivity(Activity activity) {
activityList.add(activity);
}
public void exit() {
for (Activity activity : activityList) {
activity.finish();
}
System.exit(0);
}
}
我从没想过我们可以控制当前 Activity 之外的其他 Activity 。我通常在它自己的 Activity 中调用 finish(),现在我看到这段代码,我意识到我们也可以 finish() 其他 Activity 。
Android stack是back stack架构,所以如果我在中间销毁任何activity,会发生什么?例如,我在后台堆栈中有 5 个 Activity ,假设我 finish() 第三个,现在第二个和第四个会链接在一起吗?
最佳答案
Android 维护一个正在启动的 Activity 堆栈,因此首先启动的应用程序进入堆栈底部,第二个位于其上方,此后。
因此,如果您删除第三个 Activity,第四个 Activity 将位于第二个 Activity 之上,因此它们将被链接,正如您从代码中正确理解的那样。
关于java - 破坏android中的中间 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13004208/