重复使用相同的Activity,重新加载ContentView

本文关键字:新加载 加载 ContentView Activity | 更新日期: 2023-09-27 18:17:07

我有一个用于多种目的的活动。当我从Main Activity进入这个活动时,Second Activity启动,并加载它的ContentView。当我回到Main Activity时。但是当我再次进入Second Activity时,我必须按两次后退键才能回到Main Activity,当我再次进入Second Activity时,我必须按三次后退键....等等…

所以我猜这是由于SetContentView()被调用,而contentview从未被销毁。

当然我试过这样做:

protected override void OnCreate(Bundle bundle) {
    base.OnCreate(bundle);
    SetContentView(Resource.Layout.DetailView);
    // Populating depending on Intent.GetStringExtra()
}
protected override void OnPause() {
    base.OnPause();
    Finish();
}

我也尝试了OnStop(),但这只是完成了活动,而不是contentview我猜?

还是我看错方向了?

重复使用相同的Activity,重新加载ContentView

如果你按回两次回到MainActivity,这意味着SecondActivity仍然处于活动状态,没有正确完成。

查看Android Activity生命周期

Android维护一个活动堆栈,每次你使用StartActivity()的活动被推到堆栈上。

当你按手机上的"返回"键时,最后一个活动将从堆栈中弹出。

因此,如果您想以编程方式返回到前一个活动,那么您必须调用Finish()而不是StartActivity()

我忽略了一个事实,即我在OnResume()中开始第二个活动,而不是OnCreate()

所以以前的委托仍然存在,而它创建了一个新的,当我按下一个网格按钮…问题解决了!