繁体   English   中英

以前打开活动时如何避免 OnCreate 方法执行 (Xamarin.Android)?

[英]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我所说的FirstActivityOnBackPressed方法:

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

我查看了有关该问题的答案Android(Java) 答案是,为了避免OnCreate中要执行的方法FirstActivity活动已经被创建的时候,我没有破坏FirstActivity后,我打开SecondActivity ,我不得不删除Finish()StartActivity(secondActivity); 线。 我删除了它,但是当我从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方法中的代码,可以参考这个线程。 https://stackoverflow.com/a/6931246/10627299

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM