重复使用相同的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
我猜?
还是我看错方向了?
如果你按回两次回到MainActivity,这意味着SecondActivity仍然处于活动状态,没有正确完成。
查看Android Activity生命周期
Android维护一个活动堆栈,每次你使用StartActivity()
的活动被推到堆栈上。
当你按手机上的"返回"键时,最后一个活动将从堆栈中弹出。
因此,如果您想以编程方式返回到前一个活动,那么您必须调用Finish()
而不是StartActivity()
。
我忽略了一个事实,即我在OnResume()中开始第二个活动,而不是OnCreate()
所以以前的委托仍然存在,而它创建了一个新的,当我按下一个网格按钮…问题解决了!