【问题标题】:How to avoid OnCreate method execution when activity has been opened previously (Xamarin.Android)?以前打开活动(Xamarin.Android)时如何避免执行 OnCreate 方法?
【发布时间】:2020-07-04 18:06:54
【问题描述】:

我有两个活动FirstActivitySecondActivity。当我在FirstActivty 时,我会这样称呼SecondActivity

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

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

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

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

【问题讨论】:

    标签: android-activity xamarin.android destruction


    【解决方案1】:

    您可以像此代码一样在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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 2018-03-20
      • 2022-01-09
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多