Tutup iklan

Masih ramai orang yang tidak tahu cara multitasking berfungsi dalam iOS. Sebagai permulaan, bagaimanapun, adalah perlu untuk menunjukkan bahawa ini bukan multitasking sebenar, tetapi penyelesaian yang sangat pintar yang tidak membebankan sistem atau pengguna.

Orang sering mendengar khurafat bahawa aplikasi yang berjalan di latar belakang dalam iOS mengisi memori operasi, yang membawa kepada kelembapan sistem dan hayat bateri, jadi pengguna harus mematikannya secara manual. Bar berbilang tugas sebenarnya tidak mengandungi senarai semua proses latar belakang yang sedang berjalan, tetapi hanya aplikasi yang paling baru dilancarkan. Jadi pengguna tidak perlu risau tentang proses yang berjalan di latar belakang kecuali dalam beberapa kes. Apabila anda menekan butang Utama, aplikasi biasanya akan tidur atau ditutup, supaya ia tidak lagi memuatkan pemproses atau bateri dan, jika perlu, membebaskan memori yang diperlukan.

Jadi ini bukan multitasking sepenuhnya apabila anda mempunyai berpuluh-puluh proses berjalan. Hanya satu aplikasi sentiasa berjalan di latar depan, yang dijeda atau dimatikan sepenuhnya jika perlu. Hanya beberapa proses sekunder berjalan di latar belakang. Itulah sebabnya anda jarang akan menghadapi ranap aplikasi pada iOS, contohnya Android terharu dengan menjalankan aplikasi yang perlu dijaga oleh pengguna. Di satu pihak, ini menjadikan kerja dengan peranti tidak menyenangkan, dan sebaliknya, ia menyebabkan, sebagai contoh, permulaan yang perlahan dan peralihan antara aplikasi.

Jenis masa jalan aplikasi

Aplikasi pada peranti iOS anda berada dalam salah satu daripada 5 keadaan ini:

  • Berlari: aplikasi dimulakan dan berjalan di latar depan
  • latar belakang: ia masih berjalan tetapi berjalan di latar belakang (kita boleh menggunakan aplikasi lain)
  • Digantung: Masih menggunakan RAM tetapi tidak berjalan
  • Tidak aktif: aplikasi sedang berjalan tetapi arahan tidak langsung (contohnya, apabila anda mengunci peranti dengan aplikasi berjalan)
  • Tidak berlari: Permohonan telah ditamatkan atau belum bermula

Kekeliruan berlaku apabila apl masuk ke latar belakang supaya tidak mengganggu. Apabila anda menekan butang Laman Utama atau menggunakan gerak isyarat untuk menutup aplikasi (iPad), aplikasi masuk ke latar belakang. Kebanyakan apl digantung dalam beberapa saat (Ia disimpan dalam RAM iDevice supaya ia boleh dilancarkan dengan cepat, ia tidak memuatkan pemproses dengan banyak dan dengan itu menjimatkan hayat bateri) Anda mungkin berfikir bahawa jika apl terus menggunakan memori, anda mempunyai untuk memadamkannya secara manual untuk membebaskannya. Tetapi anda tidak perlu berbuat demikian, kerana iOS akan melakukannya untuk anda. Jika anda mempunyai aplikasi yang menuntut digantung di latar belakang, seperti permainan yang menggunakan sejumlah besar RAM, iOS akan mengeluarkannya secara automatik daripada memori apabila perlu, dan anda boleh memulakannya semula dengan mengetik ikon aplikasi.

Tiada satu pun daripada keadaan ini ditunjukkan dalam bar berbilang tugas, panel hanya menunjukkan senarai apl yang dilancarkan baru-baru ini tanpa mengira sama ada apl itu dihentikan, dijeda atau berjalan di latar belakang. Anda juga mungkin mendapati bahawa aplikasi yang sedang berjalan tidak muncul dalam panel Multitasking

Tugas latar belakang

Biasanya, apabila anda menekan butang Laman Utama, aplikasi akan berjalan di latar belakang, dan jika anda tidak menggunakannya, ia akan berhenti secara automatik dalam masa lima saat. Jadi, jika anda memuat turun podcast, contohnya, sistem menilai ia sebagai aplikasi yang sedang berjalan dan menangguhkan penamatan selama sepuluh minit. Selepas sepuluh minit selewat-lewatnya, proses dilepaskan daripada ingatan. Pendek kata, anda tidak perlu risau tentang mengganggu muat turun anda dengan menekan Butang Utama, jika ia tidak mengambil masa lebih daripada 10 minit untuk menyelesaikannya.

Berjalan tidak tentu di latar belakang

Dalam kes tidak aktif, sistem menamatkan aplikasi dalam masa lima saat, dan dalam kes muat turun, penamatan ditangguhkan selama sepuluh minit. Walau bagaimanapun, terdapat sebilangan kecil aplikasi yang memerlukan berjalan di latar belakang. Berikut ialah beberapa contoh apl yang boleh berjalan di latar belakang selama-lamanya dalam iOS 5:

  • Aplikasi yang memainkan bunyi dan mesti terganggu seketika (menjeda muzik semasa panggilan telefon, dsb.),
  • Aplikasi yang menjejaki lokasi anda (perisian navigasi),
  • Aplikasi yang menerima panggilan VoIP, contohnya jika anda menggunakan Skype, anda boleh menerima panggilan walaupun semasa aplikasi berada di latar belakang,
  • Muat turun automatik (cth Gerai Akhbar).

Semua aplikasi harus ditutup jika mereka tidak lagi menjalankan tugas (seperti muat turun latar belakang). Walau bagaimanapun, terdapat pengecualian yang berjalan di latar belakang secara berterusan, seperti apl Mel asli. Jika ia berjalan di latar belakang, ia mengambil memori, penggunaan CPU atau mengurangkan hayat bateri

Apl yang dibenarkan berjalan di latar belakang selama-lamanya boleh melakukan apa sahaja yang mereka lakukan semasa mereka berjalan, daripada memainkan muzik hingga memuat turun episod Podcast baharu.

Seperti yang saya nyatakan sebelum ini, pengguna tidak perlu menutup aplikasi yang berjalan di latar belakang. Satu-satunya pengecualian untuk ini ialah apabila apl yang berjalan di latar belakang ranap atau tidak bangun dari tidur dengan betul. Pengguna kemudiannya boleh menutup aplikasi secara manual dalam bar berbilang tugas, tetapi ini jarang berlaku.

Jadi, secara amnya, anda tidak perlu mengurus proses latar belakang kerana sistem akan menguruskannya sendiri. Itulah sebabnya iOS adalah sistem yang segar dan pantas.

Dari perspektif pemaju

Aplikasi ini boleh bertindak balas dengan sejumlah enam keadaan berbeza sebagai sebahagian daripada multitasking:

1. applicationWillResignActive

Dalam terjemahan, keadaan ini bermakna bahawa permohonan itu akan meletakkan jawatan sebagai aplikasi aktif (iaitu, aplikasi di latar depan) pada masa hadapan (kira beberapa milisaat). Ini berlaku, sebagai contoh, apabila menerima panggilan semasa menggunakan aplikasi, tetapi pada masa yang sama, kaedah ini juga menyebabkan keadaan ini sebelum aplikasi masuk ke latar belakang, jadi anda perlu mengambil kira perubahan ini. Kaedah ini juga sesuai supaya, sebagai contoh, ia menangguhkan semua aktiviti yang dilakukannya apabila ada panggilan masuk dan menunggu sehingga tamat panggilan.

2. applicationDidEnterBackground

Status menunjukkan bahawa aplikasi telah pergi ke latar belakang. Pembangun harus menggunakan kaedah ini untuk menggantung semua proses yang tidak semestinya perlu dijalankan di latar belakang dan mengosongkan memori data yang tidak digunakan dan proses lain, seperti pemasa tamat tempoh, mengosongkan imej yang dimuatkan daripada memori yang tidak semestinya diperlukan atau menutup sambungan dengan pelayan, melainkan adalah penting untuk aplikasi melengkapkan sambungan di latar belakang. Apabila kaedah dipanggil dalam aplikasi, ia pada asasnya harus digunakan untuk menggantung sepenuhnya aplikasi jika sebahagian daripadanya tidak diperlukan untuk dijalankan di latar belakang.

3. applicationWillEnterForeground

Keadaan ini adalah bertentangan dengan keadaan pertama, di mana permohonan akan meletakkan jawatan kepada keadaan aktif. Keadaan ini hanya bermaksud bahawa apl tidur akan disambung semula dari latar belakang dan muncul di latar depan dalam beberapa milisaat seterusnya. pembangun harus menggunakan kaedah ini untuk menyambung semula sebarang proses yang tidak aktif semasa aplikasi berada di latar belakang. Sambungan ke pelayan harus diwujudkan semula, pemasa ditetapkan semula, imej dan data dimuatkan ke dalam memori, dan proses lain yang diperlukan boleh disambung semula sejurus sebelum pengguna melihat aplikasi yang dimuatkan semula.

4. aplikasiDidBecomeActive

Keadaan menunjukkan bahawa aplikasi baru sahaja aktif selepas dipulihkan ke latar depan. Ini ialah kaedah yang boleh digunakan untuk membuat pelarasan tambahan pada antara muka pengguna atau memulihkan UI kepada keadaan asalnya, dsb. Ini sebenarnya berlaku pada masa pengguna sudah melihat aplikasi pada paparan, jadi adalah perlu untuk tentukan dengan berhati-hati apa yang berlaku dalam kaedah ini dan dalam kaedah sebelumnya. Mereka dipanggil satu demi satu dengan perbezaan beberapa milisaat.

5. aplikasiAkanTamat

Keadaan ini berlaku beberapa milisaat sebelum aplikasi keluar, iaitu sebelum aplikasi benar-benar ditamatkan. Sama ada secara manual daripada berbilang tugas atau semasa mematikan peranti. Kaedah ini harus digunakan untuk menyimpan data yang diproses, untuk menamatkan semua aktiviti dan untuk memadam data yang tidak lagi diperlukan.

6. applicationDidReceiveMemoryWarning

Ia adalah negeri terakhir yang paling banyak dibincangkan. Ia bertanggungjawab untuk, jika perlu, mengalih keluar aplikasi daripada memori iOS jika ia menggunakan sumber sistem secara tidak perlu. Saya tidak tahu secara khusus apa yang iOS lakukan dengan apl latar belakang, tetapi jika ia memerlukan apl untuk melepaskan sumber kepada proses lain, ia menggesanya dengan amaran ingatan untuk mengeluarkan apa sahaja sumber yang ada padanya. Jadi kaedah ini dipanggil dalam aplikasi. Pembangun harus melaksanakannya supaya aplikasi melepaskan memori yang telah diperuntukkan, menyimpan semua yang sedang berjalan, mengosongkan data yang tidak diperlukan daripada memori, dan sebaliknya membebaskan memori dengan secukupnya. Memang benar bahawa ramai pembangun, malah pemula, tidak memikirkan atau memahami perkara sedemikian, dan kemudian ia boleh berlaku bahawa aplikasi mereka mengancam hayat bateri dan/atau tidak perlu menggunakan sumber sistem, walaupun di latar belakang.

keputusan

Enam negeri ini dan kaedah yang berkaitan adalah latar belakang semua "berbilang tugas" dalam iOS. ia adalah sistem yang hebat, selagi pembangun tidak mengabaikan hakikat bahawa terdapat keperluan untuk bertanggungjawab tentang apa yang dilontarkan oleh aplikasi pada peranti pengguna mereka, jika mereka diminimumkan atau mendapat amaran daripada sistem dan sebagainya.

Sumber: Macworld.com

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

 
Adakah anda juga mempunyai masalah untuk diselesaikan? Adakah anda memerlukan nasihat atau mungkin mencari aplikasi yang betul? Jangan teragak-agak untuk menghubungi kami melalui borang di bahagian Kaunseling, lain kali kami akan menjawab soalan anda.

.