![](/img/trans.png)
[英]How to pass Activity type to a method in Xamarin.Android?
[英]How to avoid OnCreate method execution when activity has been opened previously (Xamarin.Android)?
我有兩個活動FirstActivity
和SecondActivity
。 當我在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
活動已經被創建的時候,我沒有破壞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.