Tutup iklan

Masih banyak orang yang belum mengetahui cara kerja multitasking di iOS. Namun, pertama-tama, perlu ditekankan bahwa ini bukanlah multitasking yang sesungguhnya, melainkan solusi yang sangat cerdas yang tidak membebani sistem atau pengguna.

Kita sering mendengar takhayul bahwa aplikasi yang berjalan di latar belakang iOS akan mengisi memori pengoperasian, yang menyebabkan perlambatan sistem dan berkurangnya masa pakai baterai, sehingga pengguna harus mematikannya secara manual. Bilah multitasking sebenarnya tidak berisi daftar semua proses latar belakang yang berjalan, tetapi hanya aplikasi yang paling baru diluncurkan. Jadi pengguna tidak perlu khawatir dengan proses yang berjalan di latar belakang kecuali dalam beberapa kasus. Saat Anda menekan tombol Beranda, aplikasi biasanya masuk ke mode tidur atau ditutup, sehingga tidak lagi memuat prosesor atau baterai dan, jika perlu, mengosongkan memori yang diperlukan.

Jadi ini bukan multitasking penuh ketika Anda menjalankan lusinan proses. Hanya satu aplikasi yang selalu berjalan di latar depan, yang dijeda atau dimatikan sepenuhnya jika perlu. Hanya beberapa proses sekunder yang berjalan di latar belakang. Oleh karena itu jarang sekali Anda menjumpai aplikasi crash di iOS, misalnya Android kewalahan menjalankan aplikasi yang harus diurus oleh pengguna. Di satu sisi, hal ini membuat bekerja dengan perangkat menjadi tidak menyenangkan, dan di sisi lain, hal ini menyebabkan, misalnya, startup yang lambat dan transisi antar aplikasi.

Jenis waktu proses aplikasi

Aplikasi pada perangkat iOS Anda berada dalam salah satu dari 5 status berikut:

  • Berlari: aplikasi dimulai dan berjalan di latar depan
  • Latar belakang: masih berjalan tetapi berjalan di latar belakang (kita bisa menggunakan aplikasi lain)
  • Tergantung: Masih menggunakan RAM tetapi tidak berjalan
  • Tidak aktif: aplikasi sedang berjalan tetapi perintah tidak langsung (misalnya, saat Anda mengunci perangkat dengan aplikasi yang sedang berjalan)
  • Tidak berlari: Aplikasi telah dihentikan atau belum dimulai

Kebingungan muncul ketika aplikasi masuk ke latar belakang agar tidak mengganggu. Saat Anda menekan tombol Beranda atau menggunakan gerakan untuk menutup aplikasi (iPad), aplikasi akan masuk ke latar belakang. Sebagian besar aplikasi ditangguhkan dalam hitungan detik (Mereka disimpan dalam RAM iDevice sehingga dapat diluncurkan dengan cepat, aplikasi tersebut tidak memuat prosesor terlalu banyak sehingga menghemat masa pakai baterai) Anda mungkin berpikir bahwa jika suatu aplikasi terus menggunakan memori, Anda punya untuk menghapusnya secara manual untuk membebaskannya. Namun Anda tidak perlu melakukan itu, karena iOS akan melakukannya untuk Anda. Jika Anda memiliki aplikasi yang menuntut yang ditangguhkan di latar belakang, seperti game yang menggunakan RAM dalam jumlah besar, iOS akan secara otomatis menghapusnya dari memori bila diperlukan, dan Anda dapat memulai ulang dengan mengetuk ikon aplikasi.

Tak satu pun dari status ini tercermin dalam bilah multitasking, panel hanya menampilkan daftar aplikasi yang baru diluncurkan terlepas dari apakah aplikasi dihentikan, dijeda, atau berjalan di latar belakang. Anda mungkin juga memperhatikan bahwa aplikasi yang sedang berjalan tidak muncul di panel Multitasking

Tugas latar belakang

Biasanya, saat Anda menekan tombol Beranda, aplikasi akan berjalan di latar belakang, dan jika Anda tidak menggunakannya, aplikasi akan otomatis berhenti dalam waktu lima detik. Jadi, jika Anda mengunduh podcast, misalnya, sistem akan mengevaluasinya sebagai aplikasi yang sedang berjalan dan menunda penghentiannya selama sepuluh menit. Paling lambat sepuluh menit, proses dilepaskan dari memori. Singkatnya, Anda tidak perlu khawatir mengganggu pengunduhan Anda dengan menekan Tombol Beranda, jika tidak memerlukan waktu lebih dari 10 menit untuk menyelesaikannya.

Berjalan tanpa batas di latar belakang

Jika tidak ada aktivitas, sistem akan menghentikan aplikasi dalam waktu lima detik, dan jika terjadi pengunduhan, penghentian akan tertunda selama sepuluh menit. Namun, ada sejumlah kecil aplikasi yang perlu dijalankan di latar belakang. Berikut beberapa contoh aplikasi yang dapat berjalan di latar belakang tanpa batas waktu di iOS 5:

  • Aplikasi yang memutar suara dan harus diinterupsi beberapa saat (menjeda musik saat panggilan telepon, dll),
  • Aplikasi yang melacak lokasi Anda (perangkat lunak navigasi),
  • Aplikasi yang menerima panggilan VoIP, misalnya jika Anda menggunakan Skype, Anda dapat menerima panggilan meskipun aplikasi tersebut berada di latar belakang,
  • Pengunduhan otomatis (misalnya Kios).

Semua aplikasi harus ditutup jika tidak lagi menjalankan tugas (seperti pengunduhan di latar belakang). Namun, ada pengecualian yang terus berjalan di latar belakang, seperti aplikasi Mail asli. Jika berjalan di latar belakang, maka akan menghabiskan memori, penggunaan CPU, atau mengurangi masa pakai baterai

Aplikasi yang diizinkan berjalan di latar belakang tanpa batas waktu dapat melakukan apa pun saat sedang berjalan, mulai dari memutar musik hingga mengunduh episode Podcast baru.

Seperti yang saya sebutkan sebelumnya, pengguna tidak perlu menutup aplikasi yang berjalan di latar belakang. Satu-satunya pengecualian untuk hal ini adalah ketika aplikasi yang berjalan di latar belakang mogok atau tidak bangun dari mode tidur dengan benar. Pengguna kemudian dapat menutup aplikasi secara manual di bilah multitasking, tetapi hal ini jarang terjadi.

Jadi, secara umum, Anda tidak perlu mengelola proses latar belakang karena sistem akan menanganinya sendiri. Itu sebabnya iOS adalah sistem yang segar dan cepat.

Dari sudut pandang pengembang

Aplikasi ini dapat bereaksi dengan total enam status berbeda sebagai bagian dari multitasking:

1. aplikasiWillResignActive

Dalam terjemahannya, keadaan ini berarti bahwa aplikasi akan mengundurkan diri sebagai aplikasi aktif (yaitu, aplikasi di latar depan) di masa depan (dalam hitungan beberapa milidetik). Hal ini terjadi, misalnya, saat menerima panggilan saat menggunakan aplikasi, namun pada saat yang sama, metode ini juga menyebabkan keadaan ini sebelum aplikasi masuk ke latar belakang, jadi Anda perlu mempertimbangkan perubahan ini. Cara ini juga cocok, misalnya menghentikan semua aktivitas yang dilakukannya saat ada panggilan masuk dan menunggu hingga panggilan berakhir.

2. aplikasiDidEnterBackground

Status tersebut menunjukkan bahwa aplikasi telah masuk ke latar belakang. Pengembang harus menggunakan metode ini untuk menangguhkan semua proses yang tidak perlu berjalan di latar belakang dan menghapus memori dari data yang tidak terpakai dan proses lainnya, seperti penghitung waktu yang kedaluwarsa, menghapus gambar yang dimuat dari memori yang belum tentu diperlukan, atau menutup koneksi dengan server, kecuali aplikasi penting untuk menyelesaikan koneksi di latar belakang. Ketika metode ini dipanggil dalam aplikasi, pada dasarnya metode tersebut harus digunakan untuk menangguhkan aplikasi sepenuhnya jika beberapa bagiannya tidak perlu dijalankan di latar belakang.

3. applicationWillEnterForeground

Keadaan ini merupakan kebalikan dari keadaan pertama, dimana aplikasi akan mengundurkan diri ke keadaan aktif. Status ini berarti bahwa aplikasi yang tertidur akan dilanjutkan dari latar belakang dan muncul di latar depan dalam beberapa milidetik berikutnya. pengembang harus menggunakan metode ini untuk melanjutkan proses apa pun yang tidak aktif saat aplikasi berada di latar belakang. Koneksi ke server harus dibangun kembali, pengatur waktu diatur ulang, gambar dan data dimuat ke dalam memori, dan proses lain yang diperlukan dapat dilanjutkan tepat sebelum pengguna melihat aplikasi yang dimuat lagi.

4. aplikasiDidBecomeActive

Status tersebut menunjukkan bahwa aplikasi baru saja aktif setelah dikembalikan ke latar depan. Ini adalah metode yang dapat digunakan untuk melakukan penyesuaian tambahan pada antarmuka pengguna atau mengembalikan UI ke keadaan semula, dll. Hal ini sebenarnya terjadi pada saat pengguna sudah melihat aplikasi di layar, sehingga perlu dilakukan tentukan dengan hati-hati apa yang terjadi pada metode ini dan pada metode sebelumnya. Mereka dipanggil satu demi satu dengan selisih beberapa milidetik.

5. aplikasiWillTerminate

Keadaan ini terjadi beberapa milidetik sebelum aplikasi keluar, yaitu sebelum aplikasi benar-benar dihentikan. Baik secara manual dari multitasking atau saat mematikan perangkat. Metode tersebut sebaiknya digunakan untuk menyimpan data yang telah diproses, mengakhiri semua aktivitas, dan menghapus data yang tidak diperlukan lagi.

6. applicationDidReceiveMemoryWarning

Ini adalah negara bagian terakhir yang paling banyak dibicarakan. Ia bertanggung jawab, jika perlu, menghapus aplikasi dari memori iOS jika menggunakan sumber daya sistem secara tidak perlu. Saya tidak tahu secara spesifik apa yang dilakukan iOS dengan aplikasi latar belakang, tetapi jika memerlukan aplikasi untuk melepaskan sumber daya ke proses lain, iOS akan meminta dengan peringatan memori untuk melepaskan sumber daya apa pun yang dimilikinya. Jadi metode ini disebut dalam aplikasi. Pengembang harus menerapkannya sehingga aplikasi melepaskan memori yang telah dialokasikan, menyimpan segala sesuatu yang sedang berjalan, menghapus data yang tidak perlu dari memori, dan sebaliknya cukup mengosongkan memori. Memang benar bahwa banyak pengembang, bahkan pemula, tidak memikirkan atau memahami hal-hal seperti itu, dan kemudian aplikasi mereka dapat mengancam masa pakai baterai dan/atau menghabiskan sumber daya sistem secara tidak perlu, bahkan di latar belakang.

Dakwaan

Keenam keadaan ini dan metode terkaitnya adalah latar belakang dari semua "multitasking" di iOS. itu adalah sistem yang hebat, selama pengembang tidak mengabaikan fakta bahwa ada kebutuhan untuk bertanggung jawab atas apa yang dimunculkan aplikasi pada perangkat penggunanya, apakah mereka diminimalkan atau mendapat peringatan dari sistem dan sebagainya.

Zdroj: Macworld.com

Penulis: Jakub Požárek, Martin Doubek (ArnieX)

 
Apakah Anda juga mempunyai masalah yang harus diselesaikan? Apakah Anda memerlukan saran atau mungkin menemukan penerapan yang tepat? Jangan ragu untuk menghubungi kami melalui formulir di bagian tersebut Penyuluhan, lain kali kami akan menjawab pertanyaan Anda.

.