2016-09-11 3 views
4

У нас есть приложение UWP, в котором есть 3 зарегистрированных фоновых задания, одна из которых - app-trigerred задача, которая продолжает работать в фоновом режиме до отказа.
Подход заключается в том, чтобы восстановить последнее сохраненное состояние, которое хранится в фоновом процессоре, который до сих пор не сработал, он работает с данными, хранящимися до последнего момента фоновой активности, и возвращает данные, если содержимое пользовательского интерфейса не уходит еще (путем отладки приложения от последних приложений).
Единственная проблема в том, что основной поток пропал, и приложение должно возобновить активацию, последний экземпляр приложения - завершен, что означает, что фоновый объект тоже ушел, и мы ничего не можем восстановить.
Есть ли неправильная реализация, которая может вызвать это, есть ли способ предотвратить это?
Уточнение: Фоновая задача получает местоположение пользователя каждые 5 секунд и отправляет его на сервер. Журналов нет, но с использованием Debug Output я гарантировал, что BGtask работает до перезапуска, который приостановлен и завершен. Триггер приложения запускается при вводе фона, и задача вынуждена закрываться при выходе из фона.
Спасибо.Предотвращение прерывания приложения UWP при перезагрузке

+0

Bump? могу я удариться? Пожалуйста помоги! Я здесь без решения. –

+0

Вы должны поместить свое состояние в какое-то постоянное хранилище, например, localsettings или файл. –

+0

Это единственный способ? Является ли это нормальным жизненным циклом для прекращения работы приложения перед его перезагрузкой? –

ответ

1

Try для хранения данных, что вам нужно, когда приложение приостановит с помощью

private void OnSuspending(object sender, SuspendingEventArgs e) 
{ 
    var deferral = e.SuspendingOperation.GetDeferral(); 
    //TODO: Save application state and stop any background activity 
    deferral.Complete(); 
} 

В файле App.xaml.cs. Не считаете ли вы, что сохранение позиции пользователя каждые пять секунд и сохранение в ваших базах данных является вторжением в их конфиденциальность. Я не знаю, что такое ваше приложение, но я не вижу никаких оснований для того, чтобы знать позицию вашего пользователя каждые 5 секунд.

Смежные вопросы