如何使用visual studio和xamarin关闭活动android

我在我的项目上有登录,注册和主页。 我使用StartActivity(typeof(Register)); 打开注册页面。 当用户已插入数据并单击注册按钮时,我使用StartActivity(typeof(MainActivity)); 再次返回登录页面。 当我点击手机上的后退按钮时,它返回注册页面>登录页面>然后退出。 我想在打开新页面后关闭已创建的活动。

我的第二个问题,我有退出按钮,如何使用退出按钮关闭我的应用程序?

我正在使用Visual Studio 2015和Xamarin开发Android应用程序。

调用Finish将关闭并终止Activity ,它将按预期工作。 删除Avtivity以便在按下Back按钮时不会出现的更好方法是将该Activity的NoHistory设置为true。

如果您有LoginActivityDashboardActivity并且您不希望在登录后按下后退按钮时显示LoginActivity ,则可以将LoginActivity的LoginActivity设置为true,如下所示。

 [Activity (NoHistory = true)] public class LoginActivity : Activity { } 

您可以使用Finish方法关闭当前活动:

 StartActivity(typeof(MainActivity)); Finish(); 

要关闭应用程序,只需使用

 System.exit(0); 

要从导航中删除活动,您可以使用完成关键字:

 [Activity(Label = "MainActivity", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity: Activity { protected override async void OnCreate(Bundle bundle) { base.OnCreate(bundle); var intent = new Intent(this, typeof(SecondActivity)); intent.SetFlags(ActivityFlags.NewTask); //Navigation to SecondActivity StartActivity(intent); //delete main activity from navigation Finish(); } } 

对于第二个问题,您可以使用:

 System.exit(0); 

你在这篇关于android的post中对这个function有一个非常好的解释,你可以用于xamarin android: 关闭Android应用程序

 StartActivity(typeof(nameOfActivity)); // add this line Finish(); 

您无法关闭当前活动中的先前活动。 它只能自己关闭。

但您可以将数据返回到以前的活动。 在上一个活动的事件处理程序OnActivityResult中,您可以执行关闭操作。

此示例对您有所帮助。 https://code.msdn.microsoft.com/How-to-close-activity-d51941c8

下面的代码显示了如何关闭以前的活动。

在之前的活动中:

 Intent intent = new Intent(this, typeof(RegisterActivity)); //for get result, we should use method StartActivityForResult //the second param is the request code, it is the ID of this request, it should be >= 0 StartActivityForResult(intent, 1); 

在当前活动中:

 Intent intent = new Intent(this, typeof(RegisterActivity)); intent.PutExtra("result", "Success"); SetResult(Result.Ok, intent); Finish(); //when back to login activity, the OnActivityResult event will be trigger. 

并回到之前的活动:

 protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); //when regester activity retrun data, it will be execute if (requestCode == 1 && resultCode == Result.Ok) { string result = data.GetStringExtra("result"); if (result == "Success") { Finish(); } } } 

对于你的第二个问题:

只需使用:

 System.exit(0);