예제 #1
0
 public static async void Save()
 {
     Settings.Save();
     MusicLibraryPage.Save();
     MediaHelper.Save();
     AlbumsPage.Save();
     RecentPage.Save();
     UpdateHelper.Save();
     await Helper.ClearBackups(10);
 }
예제 #2
0
        private async void OnLaunched(LaunchActivatedEventArgs e, Music music)
        {
            await Settings.Init();

            await MusicLibraryPage.Init();

            if (Settings.settings.LastPage == "Albums")
            {
                await AlbumsPage.Init();
            }
            await Helper.Init();

            await UpdateHelper.Init();

            Frame rootFrame = Window.Current.Content as Frame;

            // 不要在窗口已包含内容时重复应用程序初始化,
            // 只需确保窗口处于活动状态
            if (rootFrame == null)
            {
                // 创建要充当导航上下文的框架,并导航到第一页
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                if (e?.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: 从之前挂起的应用程序加载状态
                }

                // 将框架放在当前窗口中
                Window.Current.Content = rootFrame;
            }

            if (e == null || e.PrelaunchActivated == false)
            {
                if (Windows.Foundation.Metadata.ApiInformation.IsMethodPresent("Windows.ApplicationModel.Core.CoreApplication", "EnablePrelaunch"))
                {
                    Windows.ApplicationModel.Core.CoreApplication.EnablePrelaunch(true);
                }
                if (rootFrame.Content == null)
                {
                    // 当导航堆栈尚未还原时,导航到第一页,
                    // 并通过将所需信息作为导航参数传入来配置
                    // 参数
                    rootFrame.Navigate(typeof(MainPage), e?.Arguments);
                    if (e != null && e.TileId != "App")
                    {
                        var tileId = System.Net.WebUtility.UrlDecode(e.TileId);
                        MainPage.Instance.NavigateToPage(bool.Parse(e.Arguments) ? typeof(PlaylistsPage) :
                                                         tileId.StartsWith(Helper.Localize(MenuFlyoutHelper.MyFavorites)) ? typeof(MyFavoritesPage) : typeof(AlbumPage), tileId);
                    }
                }
                // 确保当前窗口处于活动状态
                Window.Current.Activate();
            }
            Windows.ApplicationModel.Core.CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true;
            MediaHelper.Init(music);
            await AlbumsPage.Init();

            await RecentPage.Init();

            ToastHelper.Init();
            //LaunchVoiceAssistant();

            foreach (var listener in LoadedListeners)
            {
                listener.Invoke();
            }
            Inited = true;
            // If background task is already registered, do nothing
            if (BackgroundTaskRegistration.AllTasks.Any(i => i.Value.Name.Equals(ToastHelper.ToastTaskName)))
            {
                return;
            }
            // Otherwise request access
            BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();

            // Create the background task
            BackgroundTaskBuilder builder = new BackgroundTaskBuilder()
            {
                Name = ToastHelper.ToastTaskName
            };

            // Assign the toast action trigger
            builder.SetTrigger(new ToastNotificationActionTrigger());

            // And register the task
            BackgroundTaskRegistration registration = builder.Register();
        }