OnBackgroundActivated
即使主应用程序关闭或挂起,通过该方法定义的进程内后台任务是否仍会运行,还是我必须实现进程外后台任务?
文档对此并不清楚。
我之前写过进程外的后台任务,即使应用程序不在,它们也会运行。但是,在我看来,除非应用程序处于活动状态,否则进程中的后台任务将不会运行。按照文档中的建议,我使用了延迟来避免任务被关闭,并且我在注册任务时将其设置oneShot
为。false
该任务不超过 10 秒。该任务已注册并且可以从 Visual Studio 手动运行,但如果应用程序关闭,它似乎不会自动运行。
protected async override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
{
base.OnBackgroundActivated(args);
IBackgroundTaskInstance taskInstance = args.TaskInstance;
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
await RunBackgroundWork();
deferral.Complete();
}
总而言之,如果您需要创建一个即使主应用程序未打开也应该运行的后台任务,可以使用进程内后台任务来完成,还是必须使用进程外后台任务?