public override void Execute(Activity activity) { Intent intent = new Intent(activity, ActivityStack.ActivityType); if (ActivityStack.ShouldClearHistory) { intent.SetFlags(ActivityFlags.ClearTask | ActivityFlags.NewTask); } if (ViewModel != null) { intent.PutExtra(NavigationConstants.VIEWMODEL_LINK_PARAMETER_CODE, NavigationParameterContainer <TViewModel> .CreateNavigationParameter(ViewModel)); } if (FragmentStacksToPush.Count > 0) { var operation = new FragmentPushOperation <TViewModel>(ActivityStack); operation.FragmentStacksToPush.AddRange(FragmentStacksToPush); intent.PutExtra(NavigationConstants.FRAGMENT_START_PARAMETER_CODE, NavigationParameterContainer <TViewModel> .CreateNavigationParameter(new DeferredNavigationAction(operation))); } activity.StartActivity(intent); }