Aracılığıyla paylaş


Windows 8.1'de (UWP cihaz uygulamaları) cihaz arka plan görevi oluşturma

Önemli

Cihaz meta verileri kullanım dışıdır ve windows'un gelecek bir sürümünde kaldırılacaktır. Bu işlevin değiştirilmesi hakkında bilgi için bkz . Sürücü Paketi Kapsayıcı Meta Verileri.

UWP uygulamanız çevre birim cihazınızdaki verilerinizi eşitleyebilir. Uygulamanız cihaz meta verileriyle ilişkiliyse, bu UWP cihaz uygulaması üretici yazılımı güncelleştirmeleri gibi cihaz güncelleştirmelerini de gerçekleştirebilir. Bu makalede DeviceUseTrigger veya DeviceServicingTrigger kullanan bir cihaz arka plan görevinin nasıl oluşturulacağı açıklanır. Bu tetikleyicileri kullanan cihaz arka plan aracıları, kullanıcı onayı sağlayan ve cihazlar eşitlenirken ve güncelleştirilirken pil ömrünü korumaya yardımcı olan ilkelere tabidir. Cihaz arka plan görevleri hakkında daha fazla bilgi için bkz . UWP cihaz uygulamaları için cihaz eşitleme ve güncelleştirme.

Bu makale Özel USB cihaz örneğine karşılık gelir. Özel USB cihaz örneği, DeviceUseTrigger ile cihaz eşitlemesi gerçekleştiren bir arka plan görevi gösterir.

Özel USB cihaz örneğindeki cihaz arka plan görevi deviceUseTrigger özelliğine sahip olsa da, bu makalede açıklanan her şey DeviceServicingTrigger kullanan cihaz arka plan görevlerine de uygulanabilir. İki tetikleyiciyi kullanma arasındaki tek fark, Windows tarafından yapılan ilke denetimleridir.

Uygulama bildirimi

Bir cihaz arka plan görevini kullanmak için, uygulamanızın bunu sistem tarafından tetiklenen arka plan görevleri için yapıldığı gibi ön plan uygulamanızın uygulama bildirim dosyasında bildirmesi gerekir. Daha fazla bilgi için bkz . UWP cihaz uygulamaları için cihaz eşitleme ve güncelleştirme.

Bir uygulama paketi bildirim dosyasındaki bu örnekte , DeviceLibrary.SyncContent ön plan uygulamasından bir giriş noktasıdır. DeviceLibrary.SyncContent , DeviceUseTrigger kullanan arka plan görevinin giriş noktasıdır.

<Extensions>
  <Extension Category="windows.backgroundTasks" EntryPoint="DeviceLibrary.SyncContent">
    <BackgroundTasks>
      <m2:Task Type="deviceUse" /> 
    </BackgroundTasks>
  </Extension>
</Extensions>

Cihaz arka plan görevi

Cihazın arka plan görev sınıfı IBackgroundTask arabirimini uygular ve çevre biriminizi eşitlemek veya güncellemek için oluşturduğunuz gerçek kodu içerir. Arka plan görev sınıfı, arka plan görevi tetiklendiğinde ve uygulamanızın uygulama bildiriminde sağlanan giriş noktasından yürütülür.

Özel USB cihaz örneğindeki cihaz arka plan sınıfı, DeviceUseTrigger arka plan görevini kullanarak USB cihazıyla eşitleme gerçekleştirme kodunu içerir. Tüm ayrıntılar için örneği indirin. Uygulama ve Windows'un arka plan görev altyapısı hakkında IBackgroundTask daha fazla bilgi için bkz . Uygulamanızı arka plan görevleriyle destekleme.

Özel USB cihaz örneğindeki cihaz arka plan görevinin önemli bölümleri şunlardır:

  1. IoSyncBackgroundTask sınıfı, Windows arka plan görev altyapısı için gereken IBackgroundTask arabirimini uygular.

  2. sınıfı, IoSyncBackgroundTask sınıfın DeviceUseDetails Run yönteminde IoSyncBackgroundTask sınıfına geçirilen örneği alır ve ilerleme durumunu Microsoft Store uygulamasına geri bildirmek ve iptal olaylarına kaydolmak için bu örneği kullanır.

  3. Sınıfın IoSyncBackgroundTask Run yöntemi, arka plan cihazı eşitleme kodunu uygulayan özel OpenDevice ve WriteToDeviceAsync yöntemleri de çağırır.

Ön plan uygulaması

Özel USB cihaz örneğindeki ön plan uygulaması DeviceUseTrigger kullanan bir cihaz arka plan görevini kaydeder ve tetikler. Bu bölümde, ön plan uygulamanızın bir cihaz arka plan görevine kaydolmak, tetiklenmek ve ilerleme durumunu işlemek için atacağı adımlara genel bir bakış sağlanır.

Özel USB cihaz örneğindeki ön plan uygulaması, cihaz arka plan görevini kullanmak için aşağıdaki adımları gerçekleştirir:

  1. Yeni DeviceUseTrigger ve BackgroundTaskRegistration nesneleri oluşturur.

  2. Bu uygulama tarafından daha önce herhangi bir arka plan görevinin kaydedilip kaydedilmediğini denetler ve görevdeki BackgroundTaskRegistration.Unregister yöntemini çağırarak bunları iptal eder.

  3. Özel SetupBackgroundTask yöntem, cihazla eşitlenecek arka plan görevini kaydeder. SetupBackgroundTask yöntemi, sonraki adımda SyncWithDeviceAsync yönteminden çağrılır.

    1. DeviceUseTrigger başlatır ve daha sonra kullanmak üzere kaydeder.

    2. Yeni bir BackgroundTaskBuilder nesnesi oluşturur ve Name, TaskEntryPoint özellikleri ile SetTrigger yöntemini kullanarak uygulamanın DeviceUseTrigger nesnesini ve arka plan görev adını kaydeder. Nesnenin BackgroundTaskBuilderTaskEntryPoint özelliği, arka plan görevi tetiklendiğinde çalıştırılacak arka plan görev sınıfının tam adına ayarlanır.

    3. Ön plan uygulamasının kullanıcıya tamamlama ve ilerleme güncelleştirmeleri sağlayabilmesi için arka plan görevinden tamamlama ve ilerleme olayları kaydeder.

  4. Özel SyncWithDeviceAsync yöntem, cihazla eşitlenecek arka plan görevini kaydeder ve arka plan eşitlemesini başlatır.

    1. Önceki adımdaki SetupBackgroundTask yöntemini çağırır ve cihazla senkronize olacak arka plan görevini kaydeder.

    2. Arka plan görevini başlatan özel StartSyncBackgroundTaskAsync yöntemi çağırır. Bu yöntem, arka plan görevinin başlatıldığında cihazı açabildiğinden emin olmak için uygulamanın cihazla olan tutamaç bağlantısını kapatır.

      Önemli

      Arka plan görevi güncellemeyi gerçekleştirmek için cihazı açmak zorundadır, bu nedenle ön plan uygulaması RequestAsync çağrılmadan önce cihazla olan bağlantılarını kapatmalıdır.

    Ardından, StartSyncBackgroundTaskAsync yöntemi, DeviceUseTrigger nesnesinin RequestAsync yöntemini çağırır ve arka plan görevini tetikler. Sonuçta, arka plan görevinin başarıyla başlatılıp başlatılmadığını belirlemek için kullanılan DeviceTriggerResults'den RequestAsync nesnesini döndürür.

    Önemli

    Windows, tüm gerekli görev başlatma ilkesinin denetimlerini tamamlandığından emin olmak için kontrol eder. Tüm ilke denetimleri tamamlanırsa, güncelleştirme işlemi artık ön plan uygulamasının dışında bir arka plan görevi olarak çalıştırılır ve işlem devam ederken uygulamanın güvenli bir şekilde askıya alınmasına olanak tanır. Windows ayrıca tüm çalışma zamanı gereksinimlerini zorunlu kılacak ve bu gereksinimler artık karşılanmadıysa arka plan görevini iptal edecektir.

  5. Son olarak, SyncWithDeviceAsync yöntemi, DeviceTriggerResults tarafından döndürülen StartSyncBackgroundTaskAsync nesnesini kullanarak arka plan görevinin başarıyla başlatılıp başlatılmadığını belirler. Sonucu DeviceTriggerResults'dan incelemek için bir switch deyimi kullanılır.

  6. Ön plan uygulaması, uygulama kullanıcı arabirimini cihaz arka plan görevinden ilerleme durumuyla güncelleştirecek özel OnSyncWithDeviceProgress bir olay işleyicisi uygular.

  7. Ön plan uygulaması, arka plan görevi tamamlandığında arka plan görevlerinden ön plan uygulamasına geçişi işlemek için özel OnSyncWithDeviceCompleted bir olay işleyicisi uygular.

    1. CheckResults nesnesinin BackgroundTaskCompletedEventArgs yöntemini, arka plan görevi tarafından herhangi bir özel durumun atılıp atılmadığını belirlemek için kullanır.

    2. Ön plan uygulaması, arka plan görevi tamamlandıktan sonra cihazı uygulama tarafından kullanılmak üzere yeniden açar ve kullanıcıyı bilgilendirmek için kullanıcı arabirimini güncelleştirir.

  8. Ön plan uygulaması, arka plan görevini başlatmak ve iptal etmek için kullanıcı arabiriminden özel düğme tıklama olay işleyicileri uygular.

    1. Özel Sync_Click olay işleyicisi, önceki adımlarda açıklanan yöntemi çağırır SyncWithDeviceAsync .

    2. Özel CancelSync_Click olay işleyicisi, arka plan görevini iptal etmek için özel CancelSyncWithDevice yöntemi çağırır.

  9. Özel CancelSyncWithDevice yöntem, etkin cihaz eşitlemelerinin kaydını kaldırıp iptal eder, böylece cihazın BackgroundTaskRegistration.Unregister yöntemi kullanılarak yeniden açılabilmesini sağlar.