2017-02-25 86 views
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中一次刪除多個文件時不會。

問候

回答

2

我錯過了什麼?如果只刪除一個文件,該BackgroundTask將成功觸發,而不是當我立刻從我PicturesLibrary

目前bahavior是,刪除多個文件時,更改記錄將被推遲到一個刪除多個文件在下一次改變。

例如,刪除這兩個文件後,我們創建了一個新文件,任務被觸發,刪除修改包括在StorageLibraryChange列表:

[2/28/2017 4:52:35 PM] Background LibFileChangeTask Start 
Path: C:\Users\xxxx\Pictures\2.txt 
ChangeType: Deleted 
Path: C:\Users\xxxx\Pictures\1.txt 
ChangeType: Deleted 
Path: C:\Users\xxxx\Pictures\New Text Document.txt 
ChangeType: Created 

我們已經向這個問題和相關團隊正在煽動它。

+0

謝謝你的回覆。所以這個問題應該在下一個Windows 10(Mobile)版本中解決? – andy

+0

@andy無法保證,相應的團隊正在處理其他優先級最高的任務,我會密切關注此問題並在此處發佈更新。感謝您的理解。 –

+0

好吧,我明白了。感謝您的調查! – andy