private static async Task <bool> DetermineActivationKind() { bool isRedirect = false; // Find out what kind of activation this is. AppActivationArguments args = AppInstance.GetCurrent().GetActivatedEventArgs(); ExtendedActivationKind kind = args.Kind; ReportInfo($"ActivationKind={kind}"); if (kind == ExtendedActivationKind.Launch) { // This is a launch activation: here we'll register for file activation. ReportLaunchArgs("Main", args); RegisterForFileActivation(); } else if (kind == ExtendedActivationKind.File) { ReportFileArgs("Main", args); try { // This is a file activation: here we'll get the file information, // and register the file name as our instance key. if (args.Data is IFileActivatedEventArgs fileArgs) { IStorageItem file = fileArgs.Files[0]; AppInstance keyInstance = AppInstance.FindOrRegisterForKey(file.Name); ReportInfo($"Registered key = {keyInstance.Key}"); // If we successfully registered the file name, we must be the // only instance running that was activated for this file. if (keyInstance.IsCurrent) { // Report successful file name key registration. ReportInfo($"IsCurrent=true; registered this instance for {file.Name}"); // Hook up the Activated event, to allow for this instance of the app // getting reactivated as a result of multi-instance redirection. keyInstance.Activated += OnActivated; } else { isRedirect = true; await keyInstance.RedirectActivationToAsync(args); } } } catch (Exception ex) { ReportInfo($"Error getting instance information: {ex.Message}"); } } return(isRedirect); }