私は写真ライブラリのファイルとフォルダの変更を追跡するために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();
}
は私をしました何かお見逃しですか? 1つのファイルだけを削除すると、BackgroundTaskは正常に起動されますが、私はPicturesLibraryから複数のファイルを一度に削除しません。
よろしく
ありがとうございます。したがって、この問題は次のWindows 10(Mobile)ビルドで修正されるはずですか? – andy
@andy対応するチームが優先順位の高い他のタスクに取り組んでいることを保証することはできません。私はこの問題に注意し、ここに更新を掲載します。ご理解いただきありがとうございます。 –
よろしくお願いします。あなたの調査をありがとう! – andy