有没有办法从Background Task
设置锁屏或壁纸图像?我有以下代码:
if (await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file)) {
Debug.WriteLine("Live wallpaper set!");
} else {
Debug.WriteLine("Live wallpaper failed to set...");
}
这在我在应用程序中正常执行时有效,但在我从Background Task
执行时没有 - 在第一行永远不会被击中之后的断点,表明另一个同步/死锁问题(see my previous post on a similar issue)。该线程中的修复也不适合我(它总是返回false
):
bool success = UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file).GetResults(); // Try GetResults()... ALWAYS returns false
bool success = Task.Run(async () => {
return await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file);
}).Result; // ALWAYS returns false...
有什么我想念的(也许不能从TrySetWallpaperImageAsync
调用Background Task
)?
任何帮助将不胜感激,谢谢!
如果您正在运行其注册的后台任务,请确保。并且在Run方法和后续方法中一定要使用
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
并且您不必将.GetResults()
用于TrySetWallpaperImageAsync()
,因为它默认返回bool。