2
我正在使用BackgroundTask跟蹤我的圖片庫中的文件和文件夾更改。這很好,但是當我一次刪除多個文件時,BackgroundTask不會觸發。UWP StorageLibraryContentChangedTrigger刪除多個文件時
這裏是我的BG-作業註冊
private async void RegisterTask()
{
var result = await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = taskName;
builder.TaskEntryPoint = taskEntryPoint;
StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
StorageLibraryContentChangedTrigger libraryTrigger = StorageLibraryContentChangedTrigger.Create(picturesLibrary);
builder.SetTrigger(libraryTrigger);
builder.Register();
}
這是我簡單的測試BG-任務
public async void Run(IBackgroundTaskInstance taskInstance)
{
var deferral = taskInstance.GetDeferral();
try
{
await DoWork();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("ERROR BG: " + ex.Message.ToString());
}
deferral.Complete();
}
最後我的DoWork()任務
private async Task DoWork()
{
StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
StorageLibraryChangeTracker picturesTracker = picturesLibrary.ChangeTracker;
picturesTracker.Enable();
StorageLibraryChangeReader changeReader = picturesTracker.GetChangeReader();
IReadOnlyList<StorageLibraryChange> changes = await changeReader.ReadBatchAsync();
foreach (StorageLibraryChange change in changes)
{
// Reading the changes
}
await changeReader.AcceptChangesAsync();
}
沒有我想念什麼?當只刪除一個文件時,BackgroundTask將被成功觸發,但當我從我的PicturesLibrary中一次刪除多個文件時不會。
問候
謝謝你的回覆。所以這個問題應該在下一個Windows 10(Mobile)版本中解決? – andy
@andy無法保證,相應的團隊正在處理其他優先級最高的任務,我會密切關注此問題並在此處發佈更新。感謝您的理解。 –
好吧,我明白了。感謝您的調查! – andy