Bagikan melalui


Pengantar Latar Belakang di iOS

iOS mengatur pemrosesan latar belakang dengan sangat ketat, dan menawarkan tiga pendekatan untuk mengimplementasikannya:

  • Daftarkan Tugas Latar Belakang - Jika aplikasi perlu menyelesaikan tugas penting, aplikasi dapat meminta iOS untuk tidak mengganggu tugas saat aplikasi berpindah ke latar belakang. Misalnya, aplikasi mungkin perlu menyelesaikan pengelogan di pengguna, atau selesai mengunduh file besar.
  • Daftar sebagai Aplikasi yang Diperlukan Latar Belakang - Aplikasi dapat mendaftar sebagai jenis aplikasi tertentu yang telah mengetahui, persyaratan latar belakang tertentu, seperti Audio , VoIP , Aksesori Eksternal, Newsstand , dan Lokasi . Aplikasi ini diizinkan hak istimewa pemrosesan latar belakang berkelanjutan selama mereka melakukan tugas yang berada dalam parameter jenis aplikasi terdaftar.
  • Aktifkan Pembaruan Latar Belakang - Aplikasi dapat memicu pembaruan latar belakang dengan Pemantauan Wilayah atau dengan mendengarkan Perubahan Lokasi Yang Signifikan . Pada iOS 7, aplikasi juga dapat mendaftar untuk memperbarui konten di latar belakang menggunakan Pengambilan Latar Belakang atau Pemberitahuan Jarak Jauh .

Status Aplikasi dan Metode Delegasi Aplikasi

Sebelum kita mempelajari kode untuk pemrosesan latar belakang di iOS, kita perlu memahami bagaimana latar belakang memengaruhi siklus hidup aplikasi iOS.

Siklus hidup aplikasi iOS adalah kumpulan status aplikasi dan metode untuk berpindah di antara mereka. Transisi aplikasi antara status berdasarkan perilaku pengguna dan persyaratan latar belakang aplikasi. Gerakan ini diilustrasikan oleh diagram berikut:

Application States and Application Delegate Methods diagram

  • Tidak Berjalan - Aplikasi belum diluncurkan pada perangkat.
  • Berjalan/Aktif - Aplikasi ada di layar, dan menjalankan kode di latar depan.
  • Tidak aktif - Aplikasi terganggu oleh panggilan telepon masuk, teks, atau gangguan lainnya.
  • Di latar belakang - Aplikasi berpindah ke latar belakang dan terus menjalankan kode latar belakang.
  • Ditangguhkan - Jika aplikasi tidak memiliki kode apa pun untuk dijalankan di latar belakang, atau jika semua kode telah selesai, aplikasi akan Ditangguhkan oleh OS. Proses aplikasi yang ditangguhkan tetap hidup, tetapi aplikasi tidak dapat menjalankan kode apa pun dalam status ini.
  • Kembali ke Tidak Berjalan/Dihentikan (Jarang) - Terkadang, proses aplikasi dihancurkan, dan aplikasi kembali ke status Tidak Berjalan . Ini terjadi dalam situasi memori rendah, atau jika pengguna menghentikan aplikasi secara manual.

Karena pengenalan dukungan multitugas, iOS jarang mengakhiri aplikasi diam, dan sebaliknya menjaga proses mereka Ditangguhkan dalam memori. Menjaga proses aplikasi tetap hidup memastikan bahwa aplikasi diluncurkan dengan cepat saat pengguna membukanya dengan cepat. Ini juga berarti aplikasi dapat bergerak bebas dari status Ditangguhkan kembali ke status Latar Belakang tanpa menggambar sumber daya sistem. iOS 7 mengeksploitasi fitur ini dengan API baru yang memungkinkan aplikasi menjeda tugas latar belakang saat perangkat tidur, memperbarui konten langsung dari latar belakang tanpa interaksi pengguna, dan banyak lagi. Kami akan membahas API baru dalam Teknik Latar Belakang iOS.

Metode Siklus Hidup Aplikasi

Saat aplikasi mengubah status, iOS memberi tahu aplikasi melalui metode peristiwa di AppDelegate kelas:

  • OnActivated - Ini disebut pertama kali aplikasi diluncurkan, dan setiap kali aplikasi kembali ke latar depan. Ini adalah tempat untuk menempatkan kode yang perlu dijalankan setiap kali aplikasi dibuka.
  • OnResignActivation - Jika pengguna menerima gangguan seperti teks atau panggilan telepon, metode ini akan dipanggil dan aplikasi untuk sementara tidak aktif. Jika pengguna menerima panggilan telepon, aplikasi akan dikirim ke latar belakang.
  • DidEnterBackground - Dipanggil ketika aplikasi memasuki status latar belakang, metode ini memberikan aplikasi sekitar lima detik untuk mempersiapkan kemungkinan penghentian. Gunakan waktu ini untuk menyimpan data dan tugas pengguna, dan menghapus informasi sensitif dari layar.
  • WillEnterForeground - Ketika pengguna kembali ke aplikasi yang di latar belakang atau ditangguhkan, dan meluncurkannya ke latar depan, WillEnterForeground akan dipanggil. Ini adalah waktu untuk menyiapkan aplikasi untuk mengambil latar depan dengan merehidrasi status apa pun yang disimpan selama DidEnterBackground . OnActivated akan segera dipanggil setelah metode ini selesai.
  • WillTerminate - Aplikasi dimatikan, dan prosesnya dihancurkan. Metode ini hanya dipanggil jika multitugas tidak tersedia di perangkat atau versi OS, jika memori rendah, atau jika pengguna secara manual mengakhiri aplikasi yang di latar belakang. Perhatikan bahwa aplikasi yang ditangguhkan yang dihentikan tidak akan memanggil WillTerminate .

Diagram berikut mengilustrasikan bagaimana aplikasi menyatakan dan metode siklus hidup cocok bersama-sama:

This diagram illustrates how the application states and lifecycle methods fit together

Kontrol Pengguna untuk Latar Belakang di iOS

iOS 7 memperkenalkan beberapa fitur untuk memberi pengguna kontrol lebih atas status latar belakang aplikasi. Pengalih Aplikasi dan pengaturan Refresh Aplikasi Latar Belakang memengaruhi Siklus Hidup Aplikasi.

Pengalih Aplikasi

Pengalih Aplikasi adalah fitur kontrol penting yang diperkenalkan di iOS 7. Ini diluncurkan dengan mengetuk dua kali tombol Beranda , dan menunjukkan aplikasi yang prosesnya hidup:

Moving between apps using the App Switcher

Dengan menggunakan Pengalih Aplikasi, pengguna dapat menggulir rekam jepret dari semua aplikasi yang di latar belakang dan ditangguhkan. Mengetuk aplikasi meluncurkannya ke latar depan. Menggesek ke atas menghapus aplikasi dari latar belakang, mengakhiri prosesnya. Kami akan melihat lebih dekat Pengalih Aplikasi di Demo Siklus Hidup Aplikasi iOS di bagian berikutnya.

Penting

Pengalih Aplikasi tidak menunjukkan perbedaan antara aplikasi yang di latar belakang dan ditangguhkan.

Pengaturan Refresh Aplikasi Latar Belakang

iOS 7 meningkatkan kontrol pengguna atas Siklus Hidup Aplikasi dengan memungkinkan pengguna untuk menolak latar belakang aplikasi yang terdaftar untuk pemrosesan latar belakang. Ini tidak mencegah aplikasi menjalankan tugas latar belakang.

Pengguna dapat mengubah pengaturan ini dengan menavigasi ke Pengaturan > Refresh Aplikasi Latar Belakang Umum > dan mengedit hak istimewa latar belakang untuk aplikasi yang dipilih. Jika Refresh Aplikasi Latar Belakang diatur ke nonaktif, aplikasi akan segera ditangguhkan setelah memasuki latar belakang, dan dicegah untuk melakukan pemrosesan latar belakang apa pun:

Background App Refresh Settings

Pengembang dapat memeriksa status Aplikasi Refresh Latar Belakang dengan BackgroundRefreshStatus API. Misalnya, lihat resep Periksa Pengaturan Refresh Latar Belakang.

Kami telah membahas dasar-dasar Siklus Hidup Aplikasi iOS, dan fitur untuk mengontrol Siklus Hidup Aplikasi. Selanjutnya, mari kita lihat Siklus Hidup Aplikasi iOS beraksi.