Menjalankan tugas latar belakang saat aplikasi UWP Anda diperbarui

Pelajari cara menulis tugas latar belakang yang berjalan setelah aplikasi penyimpanan Platform Windows Universal (UWP) Anda diperbarui.

Tugas Perbarui latar belakang Tugas dipanggil oleh sistem operasi setelah pengguna menginstal pembaruan ke aplikasi yang diinstal pada perangkat. Ini memungkinkan aplikasi Anda melakukan tugas inisialisasi seperti menginisialisasi saluran pemberitahuan push baru, memperbarui skema database, dan sebagainya, sebelum pengguna meluncurkan aplikasi yang diperbarui.

Tugas Pembaruan berbeda dari meluncurkan tugas latar belakang menggunakan pemicu ServicingComplete karena dalam hal ini aplikasi Anda harus berjalan setidaknya sekali sebelum diperbarui untuk mendaftarkan tugas latar belakang yang akan diaktifkan oleh pemicu ServicingComplete . Tugas Pembaruan tidak terdaftar sehingga aplikasi yang belum pernah dijalankan, tetapi yang ditingkatkan, masih akan memicu tugas pembaruannya.

Langkah 1: Membuat kelas tugas latar belakang

Seperti halnya jenis tugas latar belakang lainnya, Anda menerapkan tugas Perbarui latar belakang Tugas sebagai komponen Windows Runtime. Untuk membuat komponen ini, ikuti langkah-langkah di bagian Buat kelas Tugas Latar Belakang dari Buat dan daftarkan tugas latar belakang yang tidak diproses. Langkah-langkahnya meliputi:

  • Menambahkan proyek komponen Windows Runtime ke solusi Anda.
  • Membuat referensi dari aplikasi Anda ke komponen.
  • Membuat kelas publik yang disegel dalam komponen yang mengimplementasikan IBackgroundTask.
  • Menerapkan metode Jalankan , yang merupakan titik masuk yang diperlukan yang dipanggil saat Tugas Pembaruan dijalankan. Jika Anda akan melakukan panggilan asinkron dari tugas latar belakang Anda, Buat dan daftarkan tugas latar belakang yang tidak diproses menjelaskan cara menggunakan penangguhan dalam metode Jalankan Anda.

Anda tidak perlu mendaftarkan tugas latar belakang ini (bagian "Daftarkan tugas latar belakang untuk dijalankan" di topik Membuat dan mendaftarkan tugas latar belakang di luar proses ) untuk menggunakan Tugas Pembaruan. Ini adalah alasan utama untuk menggunakan Tugas Pembaruan karena Anda tidak perlu menambahkan kode apa pun ke aplikasi Anda untuk mendaftarkan tugas dan aplikasi tidak harus setidaknya berjalan sekali sebelum diperbarui untuk mendaftarkan tugas latar belakang.

Kode sampel berikut menunjukkan titik awal dasar untuk kelas tugas Perbarui latar belakang Tugas di C#. Kelas tugas latar belakang itu sendiri - dan semua kelas lain dalam proyek tugas latar belakang - harus publik dan disegel. Kelas tugas latar belakang Anda harus berasal dari IBackgroundTask dan memiliki metode Run() publik dengan tanda tangan yang ditunjukkan di bawah ini:

using Windows.ApplicationModel.Background;

namespace BackgroundTasks
{
    public sealed class UpdateTask : IBackgroundTask
    {
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            // your app migration/update code here
        }
    }
}

Langkah 2: Nyatakan tugas latar belakang Anda dalam manifes paket

Di Penjelajah Solusi Visual Studio, klik kanan Package.appxmanifest dan klik Tampilkan Kode untuk melihat manifes paket. Tambahkan XML berikut <Extensions> untuk mendeklarasikan tugas pembaruan Anda:

<Package ...>
    ...
  <Applications>  
    <Application ...>  
        ...
      <Extensions>  
        <Extension Category="windows.updateTask"  EntryPoint="BackgroundTasks.UpdateTask">  
        </Extension>  
      </Extensions>

    </Application>  
  </Applications>  
</Package>

Di XML di atas, pastikan bahwa EntryPoint atribut diatur ke nama namespace.class dari kelas tugas pembaruan Anda. Namanya peka huruf besar/kecil.

Langkah 3: Debug/uji tugas Pembaruan Anda

Pastikan Anda telah menyebarkan aplikasi ke komputer Anda sehingga ada sesuatu yang perlu diperbarui.

Atur titik henti dalam metode Run() tugas latar belakang Anda.

atur titik henti

Selanjutnya, di penjelajah solusi, klik kanan proyek aplikasi Anda (bukan proyek tugas latar belakang) lalu klik Properti. Di jendela Properti aplikasi, klik Debug di sebelah kiri, lalu pilih Jangan luncurkan, tetapi debug kode saya saat dimulai:

atur pengaturan debug

Selanjutnya, untuk memastikan bahwa UpdateTask dipicu, tingkatkan nomor versi paket. Di Penjelajah Solusi, klik dua kali file Package.appxmanifest aplikasi Anda untuk membuka perancang paket, lalu perbarui nomor Build :

memperbarui versi

Sekarang, di Visual Studio 2019 saat Anda menekan F5, aplikasi Anda akan diperbarui dan sistem akan mengaktifkan komponen UpdateTask Anda di latar belakang. Debugger akan secara otomatis dilampirkan ke proses latar belakang. Titik henti Anda akan terpukul dan Anda dapat menelusuri logika kode pembaruan Anda.

Ketika tugas latar belakang selesai, Anda dapat meluncurkan aplikasi latar depan dari menu mulai Windows dalam sesi debug yang sama. Debugger akan kembali melampirkan secara otomatis, kali ini ke proses latar depan Anda, dan Anda dapat menelusuri logika aplikasi Anda.

Catatan

Pengguna Visual Studio 2015: Langkah-langkah di atas berlaku untuk Visual Studio 2017 atau Visual Studio 2019. Jika Anda menggunakan Visual Studio 2015, Anda dapat menggunakan teknik yang sama untuk memicu dan menguji UpdateTask, kecuali Visual Studio tidak akan melampirkannya. Prosedur alternatif di VS 2015 adalah menyiapkan ApplicationTrigger yang menetapkan UpdateTask sebagai Entry Point-nya, dan memicu eksekusi langsung dari aplikasi latar depan.

Lihat juga

Membuat dan mendaftarkan tugas latar belakang di luar proses