Что происходит, когда возникает конфликт между синхронизацией FG и BG в WP7?

У меня есть приложение с модулем BG, которое принудительно запускается каждые 4 минуты для целей тестирования, и оно работает нормально. Как только я запускаю приложение (первый запуск) и регистрируюсь на сервере, содержимое отображается, и я выхожу из приложения. Приложение переходит в состояние Application_Closing(). Я жду некоторое время (скажем, около 15 минут) и пытаюсь запустить приложение, иногда бывает так, что после выполнения конструктора MainPage() приложение деактивируется, и во время отладки и из журналов я заметил, что приложение в состояние Application_Deactivated(). В основном, приложение запускается, оно все еще отображает экран-заставку (настраиваемый) и внезапно завершается. Итак, после того, как я просмотрел лог, есть один вопрос, который меня беспокоит, т.е. если приложение запущено, в то время как задача BG все еще выполняет свою работу, и есть конфликт между FG и задачей BG, это будет в любом случае привести к деактивации приложения? У меня также есть сомнения, что я должен делать что-то еще внутри метода Application_Deactivated() в классе APp.xaml.cs. Вот Кодекс.

   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");
    }

//Бревно:-


person Apoorva    schedule 23.08.2012    source источник


Ответы (1)


Из того, что я понимаю из вашего запроса, я могу сделать вывод, что, поскольку приложение работает в потоке BG до его запуска, оно не может выделить ресурсы пользовательского интерфейса, которые требуют, чтобы оно было в FG (чего не происходит из-за перекрестного потока проблема). Я думаю, вам нужно разобраться с этим конфликтом, прежде чем продолжить.

Примечание: я не уверен в этом. Это всего лишь наблюдение. Надеюсь, мой ответ поможет вам.

person Milan Aggarwal    schedule 24.08.2012
comment
У меня есть еще один вопрос. Какое максимальное время приложение может находиться в активном состоянии. Через какое время приложение будет деактивировано автоматически??? - person Apoorva; 28.08.2012
comment
Это будет зависеть от того, установил ли пользователь в настройках таймер тайм-аута блокировки. Хотя вы можете предотвратить это, отключив обнаружение простоя приложения: your-wp7.aspx" rel="nofollow noreferrer">devlicio.us/blogs/derik_whittaker/archive/2011/02/15/ - person Milan Aggarwal; 28.08.2012
comment
Кроме этого, только пользователь может сам перевести состояние в деактивированное состояние, нажав кнопку запуска или заблокировав экран вручную. - person Milan Aggarwal; 28.08.2012