我有一项用于多种用途的活动。当我从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
?
或者我是否朝错误的方向看?
答案 0 :(得分:0)
如果您按两次返回MainActivity,则表示SecondActivity仍处于活动状态且未正确完成。
查看Android活动lifecycle
答案 1 :(得分:0)
Android维护一堆活动,每次使用StartActivity()
活动都被推送到堆栈上。
当您按下手机上的“后退”时,最后一个活动会从堆叠中弹出。
因此,如果您想以编程方式返回上一个活动,则必须拨打Finish()
而不是StartActivity()
。
答案 2 :(得分:0)
我忽略了我在OnResume()而不是OnCreate()开始第二个活动的事实
所以前一个代表团仍然存在,当我按下一个网格按钮时它创建了一个新的...问题解决了!