2016-06-15 1 views
0

BackgroundTaskDeferral.Complete работает нормально, когда приложение работает с отладкой, основной проект может поймать событие OnComplete, даже когда приложение приостановлено.BackgroundTaskDeferral.Complete не работает, когда приложение запускается без отладки в приложении UWP

Но когда приложение работает без отладки и приложение переходит в фоновый режим, BackgroundTaskDeferral.Complete не работает. основной проект не может ничего получить, когда фоновая задача вызова (когда главное событие проекта поймать OnComplete я покажу уведомления тостов)

BackgroundTaskDeferral _deferral = taskInstance.GetDeferral(); 
_deferral.Complete(); 

ответ

1

Если я понял вас правильно, то проблема заключается в том, что ваш главный проект не получает уведомление один Фоновая задача завершает свою работу. Это нормально - ваш основной проект is being suspended by the OS, shortly after your app goes to background.

Он работает во время отладки, поэтому PLM отключен и suspending/resuming events are not being raised.

Если вы хотите выполнить некоторую работу в фоновом режиме - поместите ее в фоновое задание, отправка уведомлений о тостах должна работать нормально.

+0

Так что фоновая задача не может вернуться к функции в основном проекте, когда приложение закрыто, Does BackgroundtaskDeferal.Complete просто работает, когда приложение на переднем плане? – ThangBM

+0

@ThangBM Deferal.Complete используется для работы с асинхронными методами в фоновой задаче. Если у вас есть метод async, выполняемый в другом потоке, то без дефекации метод Run дойдет до конца, и ОС закроет вашу задачу. Когда вы получили отсрочку, система знает, что что-то еще происходит, когда вы ее завершите, вы даете знак ОС, чтобы он мог освободить ресурсы. – Romasz

+0

Большое вам спасибо, поэтому, в случае закрытия приложения, когда он получает триггер уведомлений в фоновой задаче, я хочу запросить базу данных в главном проекте, что мне делать? – ThangBM

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