Bagikan melalui


Membuat tugas latar belakang perangkat di Windows 8.1 (aplikasi perangkat UWP)

Penting

Metadata perangkat tidak digunakan lagi dan akan dihapus dalam rilis Windows mendatang. Untuk informasi tentang penggantian fungsionalitas ini, lihat Metadata Kontainer Paket Driver.

Aplikasi UWP Anda dapat menyinkronkan data di perangkat periferal Anda. Jika aplikasi Anda dikaitkan dengan metadata perangkat, aplikasi perangkat UWP tersebut juga dapat melakukan pembaruan perangkat, seperti pembaruan firmware. Artikel ini menjelaskan cara membuat tugas latar belakang perangkat yang menggunakan DeviceUseTrigger atau DeviceServicingTrigger. Agen latar belakang perangkat yang menggunakan pemicu ini tunduk pada kebijakan yang memastikan persetujuan pengguna dan membantu mempertahankan masa pakai baterai saat perangkat sedang disinkronkan dan diperbarui. Untuk informasi selengkapnya tentang tugas latar belakang perangkat, lihat Sinkronisasi dan pembaruan perangkat untuk aplikasi perangkat UWP.

Artikel ini sesuai dengan sampel perangkat USB Kustom. Sampel perangkat USB Kustom menunjukkan tugas latar belakang yang melakukan sinkronisasi perangkat dengan DeviceUseTrigger.

Meskipun tugas latar belakang perangkat dalam sampel perangkat USB Kustom menampilkan DeviceUseTrigger, semuanya yang dibahas dalam artikel ini juga dapat diterapkan ke tugas latar belakang perangkat yang menggunakan DeviceServicingTrigger. Satu-satunya perbedaan antara menggunakan dua pemicu adalah pemeriksaan kebijakan yang dibuat oleh Windows.

Manifest aplikasi

Untuk menggunakan tugas latar belakang perangkat, aplikasi Anda harus mendeklarasikannya di file manifes aplikasi aplikasi latar depan Anda, seperti yang dilakukan untuk tugas latar belakang yang dipicu sistem. Untuk informasi selengkapnya, lihat Sinkronisasi dan pembaruan perangkat untuk aplikasi perangkat UWP.

Pada contoh ini dari berkas manifest paket aplikasi, DeviceLibrary.SyncContent adalah titik awal akses dari aplikasi utama. DeviceLibrary.SyncContent adalah titik masuk untuk tugas latar belakang yang menggunakan DeviceUseTrigger.

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

Tugas latar belakang perangkat

Kelas tugas latar belakang perangkat mengimplementasikan IBackgroundTask antarmuka dan berisi kode aktual yang Anda buat untuk menyinkronkan atau memperbarui perangkat periferal Anda. Kelas tugas latar belakang dijalankan saat tugas latar belakang dipicu dan dari titik masuk yang disediakan dalam manifes aplikasi Anda.

Kelas latar belakang perangkat dalam sampel perangkat USB Kustom berisi kode untuk melakukan sinkronisasi ke perangkat USB menggunakan tugas latar belakang DeviceUseTrigger . Untuk detail lengkapnya, unduh sampel. Untuk informasi selengkapnya tentang penerapan IBackgroundTask dan infrastruktur tugas latar belakang Windows, lihat Mendukung aplikasi Anda dengan tugas latar belakang.

Bagian utama dari tugas latar belakang perangkat dalam sampel perangkat USB Kustom meliputi:

  1. Kelas IoSyncBackgroundTask mengimplementasikan antarmuka IBackgroundTask yang diperlukan oleh infrastruktur tugas latar belakang Windows.

  2. Kelas IoSyncBackgroundTask mendapatkan instans DeviceUseDetails yang diteruskan ke kelas dalam metode Jalankan kelas IoSyncBackgroundTask. Kelas ini menggunakan instans tersebut untuk melaporkan kemajuan kembali ke aplikasi Microsoft Store dan mendaftar untuk acara pembatalan.

  3. Metode Run dari kelas IoSyncBackgroundTask juga memanggil metode pribadi OpenDevice dan WriteToDeviceAsync yang mengimplementasikan kode sinkronisasi perangkat latar belakang.

Aplikasi latar depan

Aplikasi latar depan dalam sampel perangkat USB Kustom mendaftar dan memicu tugas latar belakang perangkat yang menggunakan DeviceUseTrigger. Bagian ini memberikan gambaran umum tentang langkah-langkah yang akan diambil aplikasi latar depan Anda untuk mendaftar, memicu, dan menangani kemajuan untuk tugas latar belakang perangkat.

Aplikasi latar depan dalam sampel perangkat USB Kustom melakukan langkah-langkah berikut untuk menggunakan tugas latar belakang perangkat:

  1. Membuat DeviceUseTrigger dan BackgroundTaskRegistration objek baru.

  2. Memeriksa untuk melihat apakah ada tugas latar belakang yang sebelumnya didaftarkan oleh aplikasi ini dan membatalkannya dengan memanggil metode BackgroundTaskRegistration.Unregister pada tugas.

  3. Metode privat SetupBackgroundTask mendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat. Metode SetupBackgroundTask ini dipanggil dari SyncWithDeviceAsync metode pada langkah berikutnya.

    1. Menginisialisasi DeviceUseTrigger dan menyimpannya untuk digunakan nanti.

    2. Membuat objek baru BackgroundTaskBuilder dan menggunakan properti dan metode , NameTaskEntryPoint dan SetTrigger untuk mendaftarkan objek aplikasi DeviceUseTrigger dan nama tugas latar belakang. Properti BackgroundTaskBuilder objek TaskEntryPoint diatur ke nama lengkap kelas tugas latar belakang yang akan dijalankan saat tugas latar belakang dipicu.

    3. Mendaftar untuk penyelesaian dan kemajuan peristiwa dari tugas latar belakang sehingga aplikasi latar depan dapat memberikan penyelesaian dan pembaruan kemajuan kepada pengguna.

  4. Metode privat SyncWithDeviceAsync mendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat dan memulai sinkronisasi latar belakang.

    1. Memanggil metode SetupBackgroundTask dari langkah sebelumnya dan mendaftarkan tugas latar belakang yang akan disinkronkan dengan perangkat.

    2. Memanggil metode privat StartSyncBackgroundTaskAsync yang memulai tugas latar belakang. Metode tersebut menutup pegangan aplikasi ke perangkat untuk memastikan bahwa tugas latar belakang dapat membuka perangkat saat tugas tersebut dimulai.

      Penting

      Tugas latar belakang perlu membuka perangkat untuk melakukan pembaruan sehingga aplikasi latar depan harus menutup koneksinya ke perangkat sebelum memanggil RequestAsync.

    Selanjutnya, metode StartSyncBackgroundTaskAsync memanggil metode DeviceUseTrigger pada objek RequestAsync yang memulai dan memicu tugas latar belakang, serta mengembalikan objek DeviceTriggerResults dari RequestAsync yang digunakan untuk menentukan apakah tugas latar belakang berhasil dimulai.

    Penting

    Pemeriksaan Windows untuk memastikan bahwa semua pemeriksaan kebijakan inisiasi tugas yang diperlukan telah selesai. Jika semua pemeriksaan kebijakan selesai, operasi pembaruan sekarang berjalan sebagai tugas latar belakang di luar aplikasi latar depan, memungkinkan aplikasi ditangguhkan dengan aman saat operasi sedang berlangsung. Windows juga akan memberlakukan persyaratan runtime apa pun dan membatalkan tugas latar belakang jika persyaratan tersebut tidak lagi terpenuhi.

  5. Akhirnya, metode SyncWithDeviceAsync menggunakan objek DeviceTriggerResults yang dikembalikan dari StartSyncBackgroundTaskAsync untuk menentukan apakah tugas latar belakang dimulai dengan sukses. Pernyataan pengalihan digunakan untuk memeriksa hasil dari DeviceTriggerResults

  6. Aplikasi latar depan mengimplementasikan penanganan aktivitas privat OnSyncWithDeviceProgress yang akan memperbarui UI aplikasi dengan kemajuan dari tugas latar belakang perangkat.

  7. Aplikasi latar depan mengimplementasikan penanganan aktivitas privat OnSyncWithDeviceCompleted untuk menangani transisi dari tugas latar belakang ke aplikasi latar depan ketika tugas latar belakang telah selesai.

    1. Menggunakan metode CheckResults dari objek BackgroundTaskCompletedEventArgs untuk menentukan apakah ada pengecualian yang dilemparkan oleh tugas latar belakang.

    2. Aplikasi latar depan membuka kembali perangkat untuk digunakan oleh aplikasi sekarang setelah tugas latar belakang selesai dan memperbarui UI untuk memberi tahu pengguna.

  8. Aplikasi latar depan mengimplementasikan penangan aktivitas klik tombol privat dari UI untuk memulai dan membatalkan tugas latar belakang.

    1. Penangan acara privat Sync_Click memanggil metode SyncWithDeviceAsync yang dijelaskan pada langkah-langkah sebelumnya.

    2. Pengendali peristiwa privat CancelSync_Click memanggil metode privat CancelSyncWithDevice untuk membatalkan tugas latar belakang.

  9. Metode privat CancelSyncWithDevice membatalkan pendaftaran dan membatalkan sinkronisasi perangkat aktif apa pun sehingga perangkat dapat dibuka kembali dengan menggunakan metode BackgroundTaskRegistration.Unregister .