예제 #1
0
        private StartArgsEx(object eventArgs, StartKinds kind)
        {
            Starts++;
            StartKind = kind;
            EventArgs = eventArgs;

            if (ThisIsFirstStart && StartKind == StartKinds.Activate)
            {
                StartKind = StartKinds.Launch;
            }
            else if (!ThisIsFirstStart && StartKind == StartKinds.Launch)
            {
                StartKind = StartKinds.Activate;
            }

            if (StartKind == StartKinds.Activate)
            {
                PreviousExecutionState = ApplicationExecutionState.Running;
            }
            else if (LaunchActivatedEventArgs != null)
            {
                PreviousExecutionState = LaunchActivatedEventArgs.PreviousExecutionState;
            }
            else if (LaunchActivatedEventArgs != null)
            {
                PreviousExecutionState = LaunchActivatedEventArgs.PreviousExecutionState;
            }
            else
            {
                PreviousExecutionState = ApplicationExecutionState.NotRunning;
            }
        }
예제 #2
0
        public override async Task OnStartAsync(StartArgs args, StartKinds activate)
        {
            switch (activate)
            {
                case StartKinds.Launch when (args.Arguments is LaunchActivatedEventArgs e):
                    Window.Current.Content = new SplashPage(e.SplashScreen);
                    break;
                case StartKinds.Prelaunch:
                case StartKinds.Activate:
                case StartKinds.Background:
                    break;
            }

            var path = PathBuilder
                .Create(true, nameof(MainPage), ("Record", "123"))
                .Append(nameof(MainPage), ("Record", "234"))
                .Append(nameof(MainPage), ("Record", "345"))
                .Append(nameof(MainPage), ("Record", "456"))
                .Append(nameof(MainPage), ("Record", "567"))
                .ToString();

            var shell = Resolve<ShellPage>();
            await shell.ShellView.NavigationService.NavigateAsync(path);
            Window.Current.Content = shell;
        }
예제 #3
0
        public Template10StartArgs(object arg, StartKinds startKind)
        {
            Starts++;
            RawEventArgs = arg;
            StartKind    = startKind;

            // sometimes launch is actually activate
            if (ThisIsFirstStart && startKind == StartKinds.Activate)
            {
                StartKind = StartKinds.Launch;
            }
            else if (!ThisIsFirstStart && startKind == StartKinds.Launch)
            {
                StartKind = StartKinds.Activate;
            }

            // we need to update PrelaunchOccurred
            if (ThisIsPrelaunch && !PrelaunchOccurred)
            {
                PrelaunchOccurred = true;
            }

            // could PreviousExecutionState be wrong? Yes.
            if (StartKind == StartKinds.Activate)
            {
                PreviousExecutionState = ApplicationExecutionState.Running;
            }
            else if (OnLaunchedEventArgs != null)
            {
                PreviousExecutionState = OnLaunchedEventArgs.PreviousExecutionState;
            }
            else if (OnActivatedEventArgs != null)
            {
                PreviousExecutionState = OnActivatedEventArgs.PreviousExecutionState;
            }
            else
            {
                PreviousExecutionState = ApplicationExecutionState.NotRunning;
            }
        }
예제 #4
0
 public abstract Task OnStartAsync(IActivatedEventArgs args, StartKinds startKind);
예제 #5
0
 public static IStartArgsEx Create(object eventArgs, StartKinds kind)
 => new StartArgsEx(eventArgs, kind);
예제 #6
0
 public StartArgs(IActivatedEventArgs args, StartKinds startKind)
 {
     Arguments = args;
     StartKind = startKind;
 }