1

我指的是http://msdn.microsoft.com/en-us/library/windows/apps/hh464925.aspx#app_activation

    // App is an Application
    public App()
    {
        this.InitializeComponent();

        // Doesn't compile
        //this.Activated += OnActivated;

        this.Suspending += OnSuspending;
    }

    protected override void OnActivated(IActivatedEventArgs args)
    {
        System.Diagnostics.Debug.WriteLine("OnActivated");
    }

    private void OnSuspending(object sender, SuspendingEventArgs e)
    {
        var deferral = e.SuspendingOperation.GetDeferral();
        deferral.Complete();
    }

注意,OnActivated永远不会被触发。OnSuspending将在我退出应用程序大约 30 秒后触发。

如何捕获Activated事件?奇怪的是我没有在 中找到Activated事件App,尽管文档是这样说的。

4

2 回答 2

2

激活有点混乱。看看这里的文档:

http://msdn.microsoft.com/en-us/library/windows/apps/br242324.aspx

您会发现,当用户点击磁贴时,只会触发 OnLaunched 事件(请参阅此处的文档:http: //msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml .application.onactivated.aspx )

OnActivated 仅适用于普通启动之外的特殊情况。那将是以下任何一项:

OnFileActivated OnSearchActivated OnShareTargetActivated OnFileOpenPickerActivated OnFileSavePickerActivated OnCachedFileUpdaterActivated

因此,如果您真的想要在应用程序被激活时调用的东西,无论如何,我建议您制作自己的私有方法,然后从 OnLaunched 和 OnActivated 调用它。这应该适用于所有激活情况。

于 2012-11-28T12:37:13.990 回答
1

也许问题是您正常启动应用程序,例如,通过点击应用程序磁贴(没有事实,我只是在猜测)。在这种情况下,仅调用 OnLaunched 方法。

微软

于 2012-11-27T09:24:19.510 回答