Optimalkan aktivitas latar belakang

Aplikasi Universal Windows harus berkinerja baik secara konsisten di semua keluarga perangkat. Pada perangkat bertenaga baterai, konsumsi daya adalah faktor penting dalam pengalaman pengguna secara keseluruhan dengan aplikasi Anda. Masa pakai baterai sepanjang hari adalah fitur yang diinginkan untuk setiap pengguna, tetapi membutuhkan efisiensi dari semua perangkat lunak yang diinstal pada perangkat, termasuk milik Anda sendiri.

Perilaku tugas latar belakang bisa dibilang merupakan faktor terpenting dalam total biaya energi aplikasi. Tugas latar belakang adalah aktivitas program apa pun yang telah didaftarkan dengan sistem untuk dijalankan tanpa aplikasi terbuka. Lihat Membuat dan mendaftarkan tugas latar belakang di luar proses untuk informasi selengkapnya.

Izin aktivitas latar belakang

Di desktop dan perangkat seluler yang menjalankan Windows 10, versi 1607 atau yang lebih baru, pengguna dapat melihat "Penggunaan baterai berdasarkan aplikasi" mereka di bagian Baterai aplikasi Pengaturan. Di sini mereka akan melihat daftar aplikasi dan persentase masa pakai baterai yang telah dikonsumsi setiap aplikasi (dari jumlah masa pakai baterai yang telah digunakan sejak pengisian daya terakhir). Untuk aplikasi UWP dalam daftar ini, pengguna dapat memilih aplikasi untuk membuka kontrol yang terkait dengan aktivitas latar belakang.

battery usage by app

Izin latar belakang di seluler

Di perangkat seluler, pengguna akan melihat daftar tombol radio yang menentukan pengaturan izin tugas latar belakang untuk aplikasi tersebut. Aktivitas latar belakang dapat diatur ke "Selalu diizinkan," "Tidak pernah diizinkan," atau "Dikelola oleh Windows", yang berarti aktivitas latar belakang aplikasi diatur oleh sistem sesuai dengan sejumlah faktor.

Background task permissions radio buttons

Izin latar belakang pada desktop

Pada perangkat desktop, pengaturan "Dikelola oleh Windows" disajikan sebagai sakelar pengalih, diatur ke Aktif secara default. Jika pengguna beralih ke Nonaktif, mereka disajikan dengan kotak centang yang dapat mereka tentukan secara manual izin aktivitas latar belakang. Saat kotak dicentang, aplikasi akan diizinkan untuk menjalankan tugas latar belakang setiap saat. Ketika kotak tidak dicentang, aktivitas latar belakang akan dinonaktifkan.

background task permissions switch on

background task permissions switch off

Di aplikasi, Anda dapat menggunakan nilai enum BackgroundAccessStatus yang dikembalikan oleh panggilan ke metode BackgroundExecutionManager.RequestAccessAsync() untuk menentukan pengaturan izin aktivitas latar belakangnya saat ini.

Semua ini untuk mengatakan bahwa jika aplikasi Anda tidak menerapkan manajemen aktivitas latar belakang yang bertanggung jawab, pengguna dapat menolak izin latar belakang ke aplikasi Anda sama sekali, yang tidak diinginkan untuk salah satu pihak. Jika aplikasi Anda telah ditolak izin untuk berjalan di latar belakang tetapi memerlukan aktivitas latar belakang untuk menyelesaikan tindakan bagi pengguna, Anda dapat memberi tahu pengguna dan mengarahkannya ke aplikasi Pengaturan. Ini dapat dicapai dengan Meluncurkan Aplikasi Pengaturan ke halaman Aplikasi Latar Belakang atau Detail Penggunaan Baterai.

Bekerja dengan fitur Penghemat Baterai

Penghemat Baterai adalah fitur tingkat sistem yang dapat dikonfigurasi pengguna dalam Pengaturan. Ini memotong semua aktivitas latar belakang semua aplikasi ketika tingkat baterai turun di bawah ambang yang ditentukan pengguna, kecuali untuk aktivitas latar belakang aplikasi yang telah diatur ke "Selalu diizinkan."

Periksa status mode Penghemat Baterai dari dalam aplikasi Anda dengan merujuk properti PowerManager.EnergySaverStatus. Ini adalah nilai enum: EnergySaverStatus.Disabled, EnergySaverStatus.Off atau EnergySaverStatus.On. Jika aplikasi Anda memerlukan aktivitas latar belakang dan tidak diatur ke "Selalu diizinkan" maka aplikasi harus menangani EnergySaverStatus.On dengan memberi tahu pengguna bahwa tugas latar belakang yang diberikan tidak akan berjalan sampai Penghemat Baterai mati. Meskipun manajemen aktivitas latar belakang adalah tujuan utama fitur Penghemat Baterai, aplikasi Anda dapat melakukan penyesuaian tambahan untuk lebih menghemat energi saat Penghemat Baterai aktif. Jika Penghemat Baterai aktif, aplikasi Anda dapat mengurangi penggunaan animasi, menghentikan polling lokasi, atau menunda sinkronisasi dan pencadangan.

Mengoptimalkan tugas latar belakang lebih lanjut

Berikut ini adalah langkah tambahan yang dapat Anda ambil saat mendaftarkan tugas latar belakang Anda untuk membuatnya lebih sadar baterai.

Menggunakan pemicu pemeliharaan

Objek MaintenanceTrigger dapat digunakan alih-alih objek SystemTrigger untuk menentukan kapan tugas latar belakang dimulai. Tugas yang menggunakan pemicu pemeliharaan hanya akan berjalan ketika perangkat tersambung ke daya AC, dan diizinkan untuk berjalan lebih lama. Lihat Menggunakan pemicu pemeliharaan untuk instruksi.

Menggunakan jenis kondisi sistem BackgroundWorkCostNotHigh

Kondisi sistem harus dipenuhi agar tugas latar belakang berjalan (lihat Mengatur kondisi untuk menjalankan tugas latar belakang untuk lebih banyak). Biaya kerja latar belakang adalah pengukuran yang menunjukkan dampak energi relatif dari menjalankan tugas latar belakang. Tugas yang berjalan ketika perangkat dicolokkan ke daya AC akan ditandai sebagai rendah (sedikit/tanpa dampak pada baterai). Tugas yang berjalan ketika perangkat menggunakan daya baterai dengan layar mati ditandai sebagai tinggi karena mungkin ada sedikit aktivitas program yang berjalan pada perangkat pada saat itu, sehingga tugas latar belakang akan memiliki biaya relatif yang lebih besar. Tugas yang berjalan ketika perangkat menggunakan daya baterai dengan layar aktif ditandai sebagai sedang, karena mungkin sudah ada beberapa aktivitas program yang berjalan, dan tugas latar belakang akan menambahkan sedikit lebih banyak ke biaya energi. Kondisi sistem BackgroundWorkCostNotHigh hanya menunda kemampuan tugas Anda untuk berjalan hingga layar menyala atau perangkat terhubung ke daya AC.

Menguji efisiensi baterai

Pastikan untuk menguji aplikasi Anda di perangkat nyata untuk skenario konsumsi daya tinggi apa pun. Sebaiknya uji aplikasi Anda di banyak perangkat yang berbeda, dengan Penghemat Baterai aktif dan nonaktif, dan di lingkungan dengan berbagai kekuatan jaringan.