1

テスト目的で4分ごとに実行するように強制されるBGモジュールを備えたアプリがあり、正常に動作します。アプリを起動(初回起動)してサーバーに登録すると、内容が表示され、アプリを終了します。アプリはApplication_Closing()状態になります。しばらく(たとえば約15分)待ってアプリを起動しようとすると、MainPage()コンストラクターが実行された後、アプリが非アクティブ化され、デバッグ中にログからアプリが実行されることが時々発生します。基本的に、アプリは起動しますが、スプラッシュ画面(カスタマイズ済み)が表示されたままで、突然終了します。したがって、ログを調べた後、私を悩ませている質問が1つあります。つまり、BGタスクがその仕事をしている間にアプリが起動された場合、FGとBGタスクの間に競合があり、それはとにかくアプリケーションの非アクティブ化につながりますか?また、APp.xaml.csクラスのApplication_Deactivate()メソッド内でもっと何かをしなければならないのではないかと疑っています。これがコードです。

   private void Application_Deactivated(object sender, DeactivatedEventArgs e)
    {
        Logger.log(TAG, "Application deactivated");
    }
    // Code to execute when the application is closing (eg, user hit Back)
    // This code will not execute when the application is deactivated
    private void Application_Closing(object sender, ClosingEventArgs e)
    {
       if (appSession != null)
        {
            appSession.close();
        }
       Logger.log(TAG, "Application closed");
    }

//ログ:-

4

1 に答える 1

1

あなたのクエリから私が理解していることから、アプリケーションは起動前に BG スレッドで実行されているため、FG 上にあることが必要な UI リソースを割り当てることができないと結論付けることができます (これはクロススレッドのために発生していません)。問題)。続行する前に、この競合を整理する必要があると思います。

注:これについてはよくわかりません。その唯一の観察。私の答えがお役に立てば幸いです。

于 2012-08-24T03:53:21.650 に答える