使用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方法了。