如何避免在 activity 之前已打开(Xamarin.Android)时执行 OnCreate 方法?

How to avoid OnCreate method execution when activity has been opened previously (Xamarin.Android)?

我有两个活动 FirstActivitySecondActivity。当我在 FirstActivty 时,我这样调用 SecondActivity

var secondActivity = new Intent(this, typeof(SecondActivity));
secondActivity.PutExtra("someExtra", someExtra);
StartActivity(secondActivity);
Finish();

SecondActivity中我调用了OnBackPressed中的FirstActivity方法:

public override void OnBackPressed()
{
    StartActivity(typeof(FirstActivty));
    Finish();
}

我查看了有关 Android(Java) 的问题的答案。答案是,为了避免在 activity 已经创建时在 FirstActivity 中执行 OnCreate 方法,我不必在打开后销毁 FirstActivity SecondActivity,我必须在 StartActivity(secondActivity); 行之后删除 Finish()。我删除了它,但是当我从 SecondActivity 返回时 OnCreate 方法仍然被执行。此解决方案仅适用于 Android(Java) 吗?如果适用,Xamarin.Android 的解决方案是什么?

您可以像此代码一样在您的 FirstActivity 属性中添加 LaunchMode = Android.Content.PM.LaunchMode.SingleInstance

   [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true,LaunchMode = Android.Content.PM.LaunchMode.SingleInstance)]
    public class MainActivity : AppCompatActivity
    {
        
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);
           
        }

这是运行 GIF。

如果不想执行Oncreate方法中的代码,可以参考这个线程。