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

时间:2015-10-09 14:02:31

标签: c# android android-activity xamarin

我有一项用于多种用途的活动。当我从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

或者我是否朝错误的方向看?

3 个答案:

答案 0 :(得分:0)

如果您按两次返回MainActivity,则表示SecondActivity仍处于活动状态且未正确完成。

查看Android活动lifecycle

答案 1 :(得分:0)

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

当您按下手机上的“后退”时,最后一个活动会从堆叠中弹出。

因此,如果您想以编程方式返回上一个活动,则必须拨打Finish()而不是StartActivity()

答案 2 :(得分:0)

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

所以前一个代表团仍然存在,当我按下一个网格按钮时它创建了一个新的...问题解决了!