簡體   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