使用StartActivityForResult方法可以从打开的界面中接收返回参数。
使用示例:
StartActivityForResult(typeof(ActWelcome), 11);
覆写方法:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 11:
break;
}
}
当ActWelcome界面返回,就会执行上面的方法。requestCode就是我们调用StartActivityForResult方法传入的第二个参数。
在ActWelcome界面返回时执行以下代码
SetResult(Result.Ok);
Finish();
例外情况:
如果在ActWelcome类上面添加了以下代码,那StartActivityForResult并不会像预期的那样执行
[Activity(Label = "@string/ApplicationName", MainLauncher = false,
Icon = "@drawable/Icon", LaunchMode = LaunchMode.SingleTask)]
主要是这一句LaunchMode = LaunchMode.SingleTask。如果添加了这句代码,当我们调用StartActivityForResult方法时,会立即执行OnActivityResult方法,且Result为Cancel,然后再打开ActWelcome界面。接着如果我们从ActWelcome界面返回,并不会执行OnActivityResult方法了。