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 メソッドのみが呼び出されます。

msdn

于 2012-11-27T09:24:19.510 に答える