Bagikan melalui


Sinkronisasi dan pembaruan pada aplikasi perangkat dari Store di Windows 8.1

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 menggunakan tugas latar belakang perangkat untuk menyinkronkan data di perangkat periferal Anda. Jika aplikasi Anda dikaitkan dengan metadata perangkat, aplikasi perangkat UWP tersebut juga dapat menggunakan agen latar belakang perangkat untuk melakukan pembaruan perangkat, seperti pembaruan firmware. Agen latar belakang perangkat tunduk pada kebijakan yang memastikan persetujuan pengguna dan membantu mempertahankan masa pakai baterai saat perangkat sedang disinkronkan dan diperbarui.

Untuk melakukan operasi sinkronisasi dan pembaruan perangkat, buat tugas latar belakang perangkat yang masing-masing menggunakan DeviceUseTrigger dan DeviceServicingTrigger. Untuk mempelajari cara membuat tugas latar belakang perangkat dengan sampel perangkat USB Kustom, lihat Membuat tugas latar belakang perangkat.

API perangkat Windows Runtime tidak memerlukan metadata perangkat. Itu berarti aplikasi Anda tidak perlu menjadi aplikasi perangkat UWP untuk menggunakannya. Aplikasi UWP dapat menggunakan API ini untuk mengakses USB, Perangkat Antarmuka Manusia (HID), perangkat Bluetooth, dan banyak lagi. Untuk informasi selengkapnya, lihat Mengintegrasikan perangkat.

Gambaran umum tugas latar belakang perangkat

Saat pengguna memindahkan aplikasi UWP Anda di luar layar, Windows menangguhkan aplikasi Anda dalam memori, memungkinkan aplikasi lain memiliki latar depan. Saat aplikasi ditangguhkan, aplikasi berada dalam memori tetapi Windows menghentikannya agar tidak berjalan.

Setiap operasi perangkat yang sedang berlangsung seperti sinkronisasi dan pembaruan terganggu tanpa bantuan tugas latar belakang perangkat. Windows menyediakan dua pemicu tugas latar belakang untuk menyelesaikan masalah ini: DeviceUseTrigger dan DeviceServicingTrigger. Pemicu ini memungkinkan aplikasi Anda melakukan operasi sinkronisasi dan pembaruan yang berjalan lama di perangkat periferal Anda dengan aman di latar belakang, bahkan jika aplikasi Anda ditangguhkan. Untuk informasi selengkapnya tentang penangguhan aplikasi, lihat Meluncurkan, memulai kembali, dan multitugas.

Pemicu tugas latar belakang Memerlukan metadata perangkat Deskripsi
DeviceUseTrigger Tidak. Memungkinkan operasi sinkronisasi jangka panjang ke atau dari perangkat periferal Anda saat aplikasi Anda ditangguhkan. Menyinkronkan perangkat Anda di latar belakang mengharuskan pengguna Anda menyetujui sinkronisasi latar belakang oleh aplikasi Anda. Perangkat Anda juga harus terhubung atau dipasangkan dengan PC, dengan I/O aktif, dan maksimum 10 menit aktivitas latar belakang yang diizinkan. Detail selengkapnya tentang penegakan kebijakan dijelaskan nanti dalam artikel ini.
DeviceServicingTrigger Ya Mengaktifkan pembaruan perangkat yang berjalan lama, misalnya transfer pengaturan atau pembaruan firmware, saat aplikasi Anda ditangguhkan. Memperbarui perangkat Anda di latar belakang memerlukan persetujuan pengguna setiap kali tugas latar belakang digunakan. Tidak seperti tugas latar belakang DeviceUseTrigger, tugas latar belakang DeviceServicingTrigger memungkinkan boot ulang perangkat dan memutuskan sambungan dan memungkinkan maksimum 30 menit aktivitas latar belakang. Detail selengkapnya tentang penegakan kebijakan dijelaskan nanti dalam artikel ini.

DeviceServicingTrigger memerlukan metadata perangkat karena aplikasi harus ditentukan sebagai aplikasi istimewa untuk melakukan operasi pembaruan perangkat.

Hak istimewa aplikasi

Aplikasi istimewa dapat melakukan beberapa operasi perangkat penting, seperti pembaruan perangkat yang berjalan lama. Aplikasi istimewa adalah aplikasi yang diotorisasi produsen perangkat untuk melakukan operasi tersebut. Metadata perangkat menentukan aplikasi mana, jika ada, yang ditetapkan sebagai aplikasi istimewa untuk perangkat.

Saat membuat metadata perangkat Anda dengan wizard metadata perangkat, identifikasikan aplikasi Anda di halaman Tentukan informasi aplikasi perangkat UWP Anda. Untuk informasi selengkapnya, lihat Langkah 2: Membuat metadata perangkat untuk aplikasi perangkat UWP Anda.

Protokol yang Didukung

Tugas latar belakang perangkat yang menggunakan DeviceUseTrigger dan DeviceServicingTrigger memungkinkan aplikasi Anda berkomunikasi dengan perangkat periferal melalui protokol tertentu. Tugas yang dipicu sistem biasanya digunakan oleh aplikasi UWP tidak mendukung protokol ini.

Protokol PemicuPemeliharaanPerangkat Pemicu Penggunaan Perangkat Pemicu sistem
USB DeviceServicingTrigger mendukung USB. deviceusetrigger mendukung USB pemicu sistem tidak mendukung usb
HID deviceservicingtrigger mendukung HID. deviceusetrigger mendukung HID pemicu sistem tidak mendukung hid
Bluetooth RFCOMM deviceservicingtrigger mendukung Bluetooth RFCOMM. Deviceusetrigger mendukung komunikasi bluetooth RFCOMM pemicu sistem tidak mendukung bluetooth rfcomm
Bluetooth GATT deviceservicingtrigger mendukung Bluetooth GATT. deviceusetrigger mendukung Bluetooth GATT pemicu sistem tidak mendukung bluetooth gatt
MTP deviceservicingtrigger mendukung protokol MTP. deviceusetrigger tidak mendukung mtp pemicu sistem tidak mendukung mtp
Jaringan berkabel deviceservicingtrigger mendukung jaringan berkabel. deviceusetrigger tidak mendukung jaringan berkabel pemicu sistem tidak mendukung jaringan berkabel
Jaringan Wi-Fi deviceservicingtrigger mendukung wi-fiberjaringan . deviceusetrigger tidak mendukung wi-fiberjaringan pemicu sistem tidak mendukung jaringan wi-fi
IDeviceIOControl deviceservicingtrigger mendukung fungsi ideviceiocontrol. deviceusetrigger tidak mendukung ideviceiocontrol pemicu sistem tidak mendukung ideviceiocontrol

Mendaftarkan tugas latar belakang dalam manifes paket aplikasi

Aplikasi Anda melakukan operasi sinkronisasi dan pembaruan dalam kode yang berjalan sebagai bagian dari tugas latar belakang. Kode ini disematkan di kelas Runtime Windows yang mengimplementasikan IBackgroundTask (atau di halaman JavaScript khusus untuk aplikasi JavaScript). Untuk menggunakan tugas latar belakang perangkat, aplikasi Anda harus mendeklarasikannya dalam file manifes aplikasi dari aplikasi latar depan, seperti yang dilakukannya untuk tugas latar belakang yang dipicu sistem.

Dalam contoh file manifes paket aplikasi ini, DeviceLibrary.SyncContent dan DeviceLibrary.UpdateFirmware adalah titik masuk dari aplikasi latar depan. DeviceLibrary.SyncContent adalah titik masuk untuk tugas latar belakang yang menggunakan DeviceUseTrigger. DeviceLibrary.UpdateFirmware adalah titik masuk untuk tugas latar belakang yang menggunakan DeviceServicingTrigger.

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

Menggunakan perangkat Anda dengan tugas latar belakang perangkat

Untuk mengembangkan aplikasi Anda untuk memanfaatkan tugas latar belakang DeviceUseTrigger dan DeviceServicingTrigger, Anda mengikuti serangkaian langkah dasar ini. Untuk informasi selengkapnya tentang tugas latar belakang, lihat Mendukung aplikasi Anda dengan tugas latar belakang.

  1. Aplikasi Anda mendaftarkan tugas latar belakangnya di manifes aplikasi dan menyematkan kode tugas latar belakang di kelas Windows Runtime yang mengimplementasikan IBackgroundTask atau di halaman JavaScript khusus untuk aplikasi JavaScript.

  2. Saat aplikasi Anda dimulai, aplikasi akan membuat dan mengonfigurasi objek pemicu perangkat dengan jenis yang sesuai, baik DeviceUseTrigger atau DeviceServicingTrigger, dan menyimpan instans pemicu untuk digunakan di masa mendatang.

  3. Aplikasi Anda memeriksa apakah tugas latar belakang sebelumnya terdaftar dan, jika tidak, mendaftarkannya terhadap pemicu perangkat. Aplikasi Anda tidak diizinkan untuk mengatur kondisi pada tugas yang terkait dengan pemicu ini.

  4. Saat aplikasi Anda perlu memicu tugas latar belakang, aplikasi memanggil metode aktivasi RequestAsync pada objek pemicu perangkat.

  5. Tugas latar belakang Anda tidak dibatasi seperti tugas latar belakang sistem lainnya (tidak ada kuota waktu CPU) tetapi berjalan dengan prioritas yang berkurang untuk menjaga aplikasi latar depan tetap responsif.

  6. Berdasarkan jenis pemicu, Windows memvalidasi bahwa kebijakan yang diperlukan terpenuhi, termasuk meminta persetujuan pengguna untuk operasi sebelum memulai tugas latar belakang.

  7. Windows memantau kondisi sistem dan runtime tugas dan, jika perlu, membatalkan tugas jika kondisi yang diperlukan tidak lagi terpenuhi.

  8. Saat tugas latar belakang melaporkan kemajuan atau penyelesaian, aplikasi Anda menerima peristiwa ini melalui kemajuan dan menyelesaikan peristiwa pada tugas terdaftar.

Poin penting yang perlu dipertimbangkan saat menggunakan tugas latar belakang perangkat

  • Kemampuan untuk memicu tugas latar belakang secara terprogram yang menggunakan DeviceUseTrigger dan DeviceServicingTrigger hanya terbatas pada tugas latar belakang perangkat.

  • Windows memberlakukan kebijakan tertentu untuk memastikan persetujuan pengguna saat memperbarui perangkat periferal mereka. Lebih banyak kebijakan diberlakukan untuk mempertahankan masa pakai baterai pengguna saat menyinkronkan dan memperbarui perangkat periferal.

  • Windows mungkin membatalkan tugas latar belakang yang menggunakan DeviceUseTrigger dan DeviceServicingTrigger ketika persyaratan kebijakan tertentu tidak lagi terpenuhi, termasuk jumlah waktu latar belakang maksimum (waktu jam dinding). Penting untuk mempertimbangkan persyaratan kebijakan ini saat menggunakan tugas latar belakang ini untuk berinteraksi dengan perangkat periferal Anda.

Petunjuk / Saran

Untuk melihat cara kerja tugas latar belakang ini, unduh sampel. Sampel perangkat USB Kustom menunjukkan tugas latar belakang yang melakukan sinkronisasi perangkat dengan DeviceUseTrigger.

Saat aplikasi Anda menggunakan DeviceUseTrigger atau DeviceServicingTrigger, Windows memberlakukan kebijakan untuk memastikan bahwa pengguna memberikan izin aplikasi Anda untuk mengakses perangkat mereka di latar belakang untuk menyinkronkan dan memperbarui konten. Kebijakan juga diberlakukan untuk membantu mempertahankan masa pakai baterai pengguna saat menyinkronkan dan memperbarui perangkat periferal.

Tugas latar belakang yang menggunakan DeviceUseTrigger memerlukan persetujuan pengguna satu kali yang memungkinkan aplikasi Anda disinkronkan di latar belakang. Persetujuan ini disimpan per aplikasi dan model per perangkat. Pengguna menyetujui untuk mengizinkan aplikasi mengakses perangkat di latar belakang seperti yang mereka setujui untuk mengizinkan aplikasi mengakses perangkat saat aplikasi berada di latar depan.

Dalam contoh berikut, aplikasi bernama Tailspin Toys mendapatkan izin pengguna untuk disinkronkan di latar belakang.

dialog persetujuan pengguna untuk sinkronisasi perangkat.

Jika pengguna berubah pikiran nanti, mereka dapat mencabut izin di Pengaturan.

dialog pengaturan izin sinkronisasi perangkat.

Tidak seperti tugas latar belakang yang menggunakan DeviceUseTrigger, tugas latar belakang DeviceServicingTrigger memerlukan persetujuan pengguna setiap kali tugas latar belakang dipicu. Persetujuan ini tidak disimpan seperti untuk DeviceUseTrigger. Ini karena pembaruan firmware perangkat melibatkan operasi berisiko lebih tinggi dan membutuhkan lebih banyak waktu untuk menyelesaikannya.

Windows juga menyediakan informasi kepada pengguna tentang pembaruan perangkat. Ini termasuk peringatan untuk memastikan perangkat tetap terhubung selama pembaruan dan memastikan bahwa PC dicas. Windows juga menunjukkan perkiraan waktu berjalan operasi jika aplikasi Anda menyediakannya.

dialog pesan persetujuan pengguna pembaruan perangkat.

Pembatasan frekuensi dan latar depan

Tidak ada batasan pada frekuensi aplikasi Anda dapat memulai operasi, tetapi aplikasi Anda hanya dapat menjalankan satu operasi tugas latar belakang DeviceUseTrigger atau DeviceServicingTrigger pada satu waktu (ini tidak memengaruhi jenis tugas latar belakang lainnya), dan dapat memulai tugas latar belakang hanya saat aplikasi Anda berada di latar depan. Saat aplikasi Anda tidak berada di latar depan, aplikasi tidak dapat memulai tugas latar belakang dengan DeviceUseTrigger atau DeviceServicingTrigger. Aplikasi Anda tidak dapat memulai tugas latar belakang perangkat kedua sebelum tugas latar belakang pertama selesai.

Kebijakan tugas latar belakang perangkat

Windows memberlakukan kebijakan saat aplikasi Anda menggunakan tugas latar belakang perangkat. Jika kebijakan ini tidak terpenuhi, tugas latar belakang menggunakan DeviceUseTrigger atau DeviceServicingTrigger mungkin dibatalkan. Penting untuk mempertimbangkan persyaratan kebijakan ini saat menggunakan tugas latar belakang perangkat untuk berinteraksi dengan perangkat periferal Anda.

Kebijakan inisiasi tugas

Tabel ini menunjukkan kebijakan inisiasi tugas mana yang berlaku untuk setiap pemicu tugas latar belakang.

Policy PemicuPemeliharaanPerangkat Pemicu Penggunaan Perangkat
Aplikasi UWP Anda berada di latar depan saat memicu tugas latar belakang. kebijakan berlaku. kebijakan berlaku
Perangkat Anda terpasang pada sistem (atau dalam rentang untuk perangkat nirkabel). kebijakan berlaku. kebijakan berlaku
Tugas latar belakang Anda menggunakan waktu CPU 400ms (dengan asumsi CPU 1GHz) setiap menit ketika layar dikunci, atau setiap 5 menit ketika layar tidak dikunci. Kegagalan untuk memenuhi kebijakan ini dapat mengakibatkan pembatalan tugas Anda. kebijakan berlaku. kebijakan berlaku
Perangkat Anda dapat diakses oleh aplikasi menggunakan API periferal perangkat (API Runtime Windows untuk USB, HID, Bluetooth, dan sebagainya). Jika aplikasi Anda tidak dapat mengakses perangkat, akses ke tugas latar belakang ditolak. kebijakan berlaku. kebijakan berlaku
Titik entri tugas latar belakang yang disediakan oleh aplikasi terdaftar dalam manifes paket aplikasi. kebijakan berlaku. kebijakan berlaku
Pengguna telah memberikan izin tugas untuk melanjutkan. Setiap saat. Pertama kali, lalu dikontrol oleh izin aplikasi.
Perkiraan waktu yang disediakan oleh aplikasi kurang dari 30 menit. kebijakan berlaku. kebijakan tidak berlaku
Aplikasi ini ditentukan sebagai aplikasi istimewa untuk perangkat. (Harus ada kecocokan ID aplikasi lengkap dengan daftar aplikasi istimewa dalam metadata perangkat kontainer perangkat.) kebijakan berlaku. kebijakan tidak berlaku
Komputer memiliki kapasitas baterai yang lebih besar dari 33% yang tersisa atau menggunakan daya AC. kebijakan berlaku. kebijakan tidak berlaku
Hanya satu tugas latar belakang perangkat yang berjalan per jenis operasi. pemeriksaan kebijakan sedang diterapkan. kebijakan berlaku

Pemeriksaan kebijakan saat berjalan

Windows memberlakukan persyaratan kebijakan runtime berikut saat tugas Anda berjalan di latar belakang. Jika salah satu persyaratan runtime tidak lagi terpenuhi, Windows akan membatalkan tugas di latar belakang perangkat Anda.

Tabel ini menunjukkan kebijakan runtime mana yang berlaku untuk setiap pemicu tugas latar belakang.

Pemeriksaan kebijakan PemicuPemeliharaanPerangkat Pemicu Penggunaan Perangkat
Batas waktu jam dinding – jumlah total waktu tugas aplikasi Anda dapat berjalan di latar belakang. 30 menit 10 menit
Perangkat Anda terpasang pada sistem (atau dalam rentang untuk perangkat nirkabel). kebijakan tidak berlaku. pemeriksaan kebijakan berlaku
Tugas melakukan I/O reguler ke perangkat (1 I/O setiap 5 detik). kebijakan tidak berlaku. pemeriksaan kebijakan berlaku
Aplikasi belum membatalkan tugas. pemeriksaan kebijakan sedang diterapkan. pemeriksaan kebijakan berlaku
Aplikasi belum berhenti. pemeriksaan kebijakan sedang diterapkan. pemeriksaan kebijakan berlaku

Praktik terbaik

Berikut ini adalah praktik terbaik untuk aplikasi perangkat UWP yang menggunakan tugas latar belakang perangkat.

Model pemrograman tugas latar belakang perangkat

Menggunakan tugas latar belakang DeviceUseTrigger atau DeviceServicingTrigger dari aplikasi Anda memastikan bahwa setiap operasi sinkronisasi atau pembaruan perangkat yang dimulai dari aplikasi latar depan Anda terus berjalan di latar belakang jika pengguna Anda beralih aplikasi dan aplikasi latar depan Anda ditangguhkan oleh Windows. Kami menyarankan agar Anda mengikuti model keseluruhan ini untuk mendaftarkan, memicu, dan membatalkan pendaftaran tugas latar belakang Anda:

  1. Daftarkan tugas latar belakang sebelum meminta pemicu.

  2. Sambungkan penanganan aktivitas kemajuan dan penyelesaian ke pemicu Anda. Saat aplikasi Anda kembali dari penangguhan, Windows menyediakan aplikasi Anda dengan kejadian kemajuan atau penyelesaian yang diantrekan, yang dapat digunakan untuk menentukan status tugas latar belakang Anda.

  3. Tutup objek perangkat terbuka saat Anda memicu tugas latar belakang DeviceUseTrigger atau DeviceServicingTrigger sehingga perangkat tersebut bebas dibuka dan digunakan oleh tugas latar belakang Anda.

  4. Daftarkan pemicu.

  5. Saat tugas selesai, batalkan pendaftaran tugas latar belakang. Saat tugas latar belakang selesai, Anda dapat membatalkan pendaftaran tugas latar belakang dan membuka kembali perangkat dan menggunakannya secara teratur dari aplikasi UWP Anda.

  6. Daftar untuk peristiwa pembatalan dari kelas tugas latar belakang Anda. Mendaftar untuk peristiwa pembatalan memungkinkan kode tugas latar belakang Anda menghentikan tugas latar belakang yang berjalan dengan bersih saat dibatalkan oleh Windows atau aplikasi latar depan Anda.

  7. Saat keluar dari aplikasi (bukan penangguhan), batalkan pendaftaran dan batalkan tugas yang sedang berjalan.

    • Saat aplikasi Anda keluar, batalkan pendaftaran dan batalkan tugas yang sedang berjalan.

    • Saat aplikasi Anda keluar, tugas latar belakang Anda dibatalkan dan penangani peristiwa yang ada terputus dari tugas latar belakang tersebut. Ini mencegah Anda menentukan status tugas latar belakang Anda. Membatalkan pendaftaran dan membatalkan tugas latar belakang akan memungkinkan kode pembatalan Anda menghentikan tugas latar belakang Anda dengan bersih.

Petunjuk / Saran

Untuk deskripsi terperinci tentang bagaimana hal ini dilakukan dengan sampel perangkat USB Kustom, lihat Membuat tugas latar belakang perangkat.

Membatalkan tugas latar belakang

Untuk membatalkan tugas yang berjalan di latar belakang dari aplikasi latar depan Anda, gunakan metode Batalkan pendaftaran pada objek BackgroundTaskRegistration yang Anda gunakan di aplikasi Anda untuk mendaftarkan tugas latar belakang DeviceUseTrigger atau DeviceServicingTrigger . Membatalkan pendaftaran tugas latar belakang Anda dengan menggunakan metode Batalkan pendaftaran pada BackgroundTaskRegistration menyebabkan infrastruktur tugas latar belakang membatalkan tugas latar belakang Anda.

Metode Unregister juga mengambil nilai Boolean benar atau salah untuk menunjukkan apakah instans tugas latar belakang yang sedang berjalan harus dibatalkan tanpa mengizinkannya untuk selesai. Untuk informasi selengkapnya, lihat referensi API untuk BackgroundTaskRegistration.Unregister.