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.
Halo, artikel yang sangat keren, tapi saya ingin tahu apakah Anda memiliki dukungan teknis untuk itu. Karena saya telah memecahkan baterai beberapa kali di malam hari sebelum tidur dan kebetulan dengan wifi dan data seluler dimatikan, butuh lebih banyak waktu daripada kasus lain dengan wifi dimatikan dan hanya 3G.
Sayangnya, pengalaman di iOS, aplikasi harus dimatikan secara manual, dan sistem tidak lagi berjalan sebaik sebelumnya.
Saya mengganti iPhone saya dengan Windows Phone (Samsung Omnia W seharga 6200,-) dan kecepatan sistem berada pada level yang sama sekali berbeda.
Saya khawatir ketika tablet Windows 8 Metro keluar, saya juga akan mengganti iPad...
@007 – ya, jika Anda membandingkan iPhone3G lama dengan WP baru, maka ya (siapa sangka?) WP akan sedikit lebih cepat. Jika tidak, gosip tentang Karlulka tidak akan berjalan baik bagi Anda dan pantas untuk membandingkan HW saat ini. Saya juga membeli WP7 dan akhirnya mendapatkan 4s, yang mewakili tingkat kegunaan yang sangat berbeda dari WP7. Jadi lewati dengan menyenangkan dan gulir tanpa henti melalui ubin.
Saya sangat setuju dengan Paja
Saya akan berkontribusi lagi dari puing-puing barel lain - Samsung Galaxy S dan iPhone 4 - menurut saya sebanding dalam hal usia? Pada zaman iOS 4, dan dalam hal kegunaan dan kecepatan selain Android, Apple telah memecahkan konsep bekerja dengan aplikasi dengan sangat baik, tetapi hal yang sama tidak berlaku lagi dengan Android. Pada akhirnya, saya tetap menggunakan 4S dan saya tidak memiliki keluhan, karena "berfungsi" .. dan bekerja sangat cepat!
Teorinya bagus... Tapi praktiknya, saya tetap menutup aplikasi di bar ;)
Terima kasih, sangat menarik, pragmatis, menarik, tidak kekurangan ayunan dan kedalaman. Secara signifikan menggarisbawahi obsesi anak muda masa kini terhadap merek terlarang ini! Tapi terima kasih untuknya, juga untuk artikel ini.
Artikel tersebut sepenuhnya salah.
Aplikasi tidak berhenti ketika tombol Beranda ditekan, seperti yang dinyatakan secara keliru, namun berhenti sejenak. Yaitu. pastinya jangan hapus dari memori dan jangan berhenti. Jeda saja prosesnya, iOS akan memberi aplikasi ini 0% waktu CPU. Itu pasti tidak "bertukar" di mana pun di memori iDevice, seperti yang dinyatakan dalam artikel. Hal ini berkat fakta bahwa dimungkinkan untuk menggunakan peralihan aplikasi.
Aplikasi dihapus dari memori ketika ponsel memiliki sedikit memori untuk menjalankan aplikasi lain dengan prioritas lebih tinggi (biasanya aplikasi lain berjalan di latar depan).
Dalam kasus pertama, Anda benar, itu adalah kesalahan terjemahan. Mengenai pertukaran, kami tidak membicarakannya di sini, kami berbicara tentang memori operasi, bukan ruang penyimpanan di perangkat iOS.
gambar aplikasi disimpan dalam memori untuk waktu terbatas hingga dipanggil kembali dengan perintah (lihat 13,7 GB dari 16 GB: 2,3 GB dicadangkan untuk sistem dan aplikasi yang ditangguhkan)
Oleh karena itu, perlu dibedakan antara aplikasi-aplikasi seperti Navigasi, Skype dan sejenisnya, aplikasi-aplikasi tersebut tetap aktif meskipun di latar belakang, atau suatu fungsi tertentu tidak berhenti dan terus berlanjut, misalnya mengirimkan data tentang lokasinya atau informasi lokasinya. Atau seperti Vokul dalam mode pord mendengarkan dan multitasking masih mendengarkan di latar belakang.
Aplikasi ini menguras baterai dan harus ditutup secara manual dan tidak menunggu iOS. dengan yang lain tidak perlu, hanya jika aplikasi mogok.
Saya sangat setuju dengan artikel tersebut. Minimal. pada iPad generasi pertama (iOS 1) terlihat jelas apakah saya memiliki banyak aplikasi "terbuka" di bilah multitasking atau hanya beberapa. iOS memang mencoba membersihkan memori, tetapi itu jelas tidak cukup - ukuran RAM yang kecil mungkin merupakan kelemahan terbesarnya.
jadi banyak tergantung pada sistem dan perangkat keras yang digunakan, cukup logis bahwa ini akan lebih buruk di iPad 1 dengan iOS 5.0.1 dibandingkan jika di iPad generasi ke-2
Maaf sobat, ini adalah deskripsi cara kerja IDEAL. Sayangnya, kenyataannya sangat berbeda dan Anda akan mengetahuinya jika Anda menggunakan produk Apple, setidaknya seperti saya (yaitu sesekali).
"Anda sering mendengar takhayul bahwa aplikasi yang berjalan di latar belakang iOS akan memenuhi memori pengoperasian,"
Ini bukan takhayul, ini hanya fakta. Lagi pula, Anda sendiri yang mengklaimnya di artikel tersebut.
"Seperti yang saya sebutkan sebelumnya, pengguna tidak perlu menutup aplikasi yang berjalan di latar belakang."
OMONG KOSONG. Itu hanya omong kosong, propaganda apel, jangan marah padaku.
“Tetapi 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.”
Tidak benar. Situasinya sedikit berbeda. Contoh tipikal – Saya memiliki aplikasi berat yang berjalan di latar belakang, saya memerlukan permainan. Saya meluncurkan browser, membuka beberapa tab -> membutuhkan lebih banyak memori. Apa yang akan terjadi? Saya terus menuntut aplikasi di latar belakang, sebaliknya, BROWSER SENDIRI JATUH. Jika saya menutup aplikasi yang menuntut secara manual, browser akan bekerja dalam waktu lama tanpa masalah.
Ini adalah praktik, bukan teori. Dan saya terkejut, sebagai pengguna jangka panjang produk Apple, Anda masih belum mengetahui hal ini.
Terima kasih, ini dijelaskan dan dijelaskan dengan sangat baik. Anda telah banyak membantu saya ;-) ♥
Sebagai permulaan, saya tidak mendukung atau menentang iOS, sama seperti Android, tetapi ada beberapa hal yang aneh di sini, jika seperti yang tertulis di sini: "Anda jarang menemukan aplikasi crash di iOS" maka di Android aplikasi crash sekitar setahun sekali: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Ya, tetapi kasus ketika Anda harus menutup aplikasi secara manual sangat minim, saya menggunakannya sekitar sekali? ;-) dan memberikan link uji komparatif dari Mobilemania tidak ada gunanya, ketika saya ingin membaca tentang iklan yang dibayar Google, saya akan lihat di sana ;-) semua orang bisa mendapatkan ponsel Android apa pun di tangan mereka dan itu tidak akan berjalan dengan baik, kecuali Galaxy Nexus, yang sistemnya kurang lebih dibuat khusus. Secara keseluruhan, Android adalah sebuah bencana
@Mek – Saya telah menggunakan produk Apple setiap hari selama beberapa tahun dan ini tidak pernah terjadi pada saya, jadi teori Anda tidak berhasil.
PL:
@redakce – Anda dapat melihat bahwa situs web terus-menerus dikerjakan atau terjadi sesuatu dengannya, tetapi menurut saya tidak perlu waktu seminggu agar semuanya berfungsi sebagaimana mestinya. Dan saya tidak terlalu datang kesini lagi, karena tampilan barunya tidak cocok untuk saya. Setidaknya saya menggunakan versi mobile di iPhone, tapi sekarang tidak berfungsi sama sekali - kok bisa? Mereka saat ini tidak menanggapi postingan di komentar.
@SteveJSF Sayangnya, segala sesuatunya tidak selalu berjalan sesuai keinginan kita. Adapun jawabannya, plugin SEO baru memecahkannya, saat ini sedang diselesaikan.
WP-Touch juga menghentikan layanan kami karena alasan tertentu, jadi kami memutuskan untuk memberikan solusi yang lebih baik daripada plugin ini. Jadi kalian bisa segera menantikan berita selanjutnya :-)
Artikel yang bagus. Sejauh menyangkut praktik, saya ingin mengatakan bahwa saya setuju dengan beberapa hal dan sebagian besar berfungsi seperti yang dinyatakan, tetapi sayangnya masih ada aplikasi yang ditulis dengan buruk yang tidak berperilaku benar, dan kemudian ada kasus seperti itu. dicatat oleh beberapa pembaca. Menurut saya Skype adalah contoh yang sangat bagus, saya tahu dari praktik bahwa Skype masih berjalan di latar belakang (dan tidak apa-apa dan memang seharusnya begitu), tetapi masalahnya adalah aplikasi ini sangat menguras baterai perangkat dan Saya tidak dapat melihatnya dengan baik lagi. Sebaliknya aplikasi seperti Facebook, Badoo, dll. mereka juga masih berjalan di latar belakang, tetapi konsumsinya hampir tidak terlihat (setidaknya saya tidak menyadarinya). Jadi menurut saya kesalahannya ada pada masing-masing aplikasi. Jika Anda tahu yang mana, cukup mematikannya secara manual saja!
Jadi praktiknya adalah Facebook berjalan sesuai kebutuhan dan Skype hanya berjalan bila diperlukan.
Sebaliknya, jika saya perlu menghemat baterai dan saya tahu saya harus menjaga iPhone "hidup" selama mungkin, saya juga mematikan semua yang tidak perlu dalam multitasking, tetapi sebagian besar tidak berdampak besar, tapi kalau perlu saya batasi 3G, semua internet seluler, WiFi, layanan lokasi, mode pesawat, kekuatan pencahayaan, dll. Sebagai bagian dari rutinitas, saya juga mematikan aplikasi-aplikasi tersebut di atas dalam multitasking.
Jadi menurut saya pribadi artikel tersebut ada benarnya, sayangnya beberapa programmer menyanggah hal tersebut dengan aplikasinya, karena aplikasinya tidak benar dan menurut saya solusinya hanya ada dua 1. Jika memungkinkan jangan gunakan aplikasi tersebut dan carilah alternatif jika memungkinkan, atau 2. Jika tidak memungkinkan, lihat misalnya Skype, tuliskan hal tersebut kepada pemrogram yang diberikan dalam laporan dan berharap mereka akan melakukan sesuatu untuk mengatasinya.
Mungkin tidak ada gunanya menonaktifkan aplikasi secara manual, tapi saya tetap melakukannya. Saya juga mencoba untuk tidak mematikan sistem aplikasi, membiarkannya berjalan (atau membiarkannya tertidur di latar belakang) dan masa pakai baterai jauh lebih rendah, saya juga harus me-restart iPad 2 setelah sekitar tiga minggu, responnya lambat. Jadi saya mematikan aplikasi secara manual, baterainya tahan lebih lama, saya baru saja reboot pada Hari Natal dan berfungsi dengan baik.
Ngomong-ngomong, saya melakukan hal yang sama di Mac OS X, saya hanya menutup aplikasi yang tidak saya perlukan (CMD+Q), itu lebih baik daripada membiarkannya tidur di latar belakang dan memakan RAM yang tidak perlu (yang bisa dilakukan OS X). tidak bekerja dengan baik). Saya memiliki sedikit RAM, hanya 8 GB, tetapi di Windows 7 dengan 8 GB, sistem tidak merespons dengan lambat atau bertukar, di OS X ini adalah fenomena yang cukup umum (saya tidak pernah mematikan komputer, saya juga melakukannya dengan Mac, jadi waktu aktif sebulan atau lebih tidak terkecuali, masalahnya adalah saya terkadang harus me-restart Mac sebagai tindakan pencegahan untuk mengosongkan RAM dan "mempercepat", Windows 7 tidak memerlukan ini).
Saya lebih tertarik pada cara meledakkan aplikasi tersebut. Yang terjadi pada saya adalah aplikasi (khususnya pada Geocaching) mengalami keadaan sedang memuat sesuatu dari server induk dan terjebak dalam keadaan tersebut. Tombol Beranda berfungsi, setelah reboot kembali ke keadaan beku (di mana saya tinggalkan). Manual exit (ke menu multitasting tahan icon dan minus untuk close) = aplikasi hilang, setelah di restart dibuka seperti semula dimana freeze. Jadi saya tutup semuanya, matikan ponsel, hidupkan, klik dua kali HOME dan lihatlah – semua aplikasi ada di sana seperti sebelum ditutup sebelum dimatikan. Memulai ulang juga tidak membantu - tahan tombol home dan upper hingga menjadi panas. Satu-satunya hal yang membantu adalah menghapus aplikasi dari telepon, memulai ulang, dan menginstalnya kembali di telepon. Entah kenapa aku tidak menerimanya.
Manajemen multitasking ini berfungsi dan terserah kepada pengembang untuk mengatasi situasi ini. Bagi mereka yang tertarik dengan gambaran keseluruhan situasi yang lebih rinci dan profesional, di sini saya akan menulis bagaimana keadaannya.
Aplikasi ini dapat merespons total 6 negara bagian dan negara bagian ini adalah:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
applicationDidBecomeActive
applicationWillTerminate
applicationDidReceiveMemoryWarning
Sekarang saya akan mencoba menjelaskan keadaan-keadaan ini secara lebih rinci.
applicationWillResignActive – keadaan ini berarti bahwa di masa depan (dalam hitungan beberapa milidetik) aplikasi akan mengundurkan diri sebagai aplikasi aktif (yaitu aplikasi latar depan) hal ini terjadi misalnya ketika menerima panggilan saat menggunakan aplikasi, tetapi pada saat yang sama ini Oleh karena itu, status ini akan terpicu bahkan sebelum aplikasi berjalan di 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.
applicationDidEnterBackground - status ini menunjukkan bahwa aplikasi telah memasuki latar belakang, pengembang harus menggunakan metode ini untuk menangguhkan semua proses yang tidak perlu berjalan di latar belakang dan membersihkan memori dari data yang tidak terpakai dan proses lainnya, misalnya penghitung waktu kedaluwarsa, hapus dari gambar yang memuat memori yang belum tentu diperlukan atau mengakhiri koneksi dengan server jika tidak penting bagi aplikasi untuk menyelesaikan koneksi di latar belakang. Pada dasarnya, metode ini ketika dipanggil dalam aplikasi harus digunakan untuk menangguhkan aplikasi sepenuhnya jika beberapa bagiannya tidak perlu dijalankan di latar belakang.
applicationWillEnterForeground – keadaan ini merupakan kebalikan dari keadaan pertama ketika aplikasi akan mengundurkan diri ke keadaan aktif. Status aplikasi ini berarti bahwa dalam beberapa milidetik berikutnya aplikasi yang tertidur akan dilanjutkan dari latar belakang dan muncul di latar depan (aplikasi memasuki latar depan), metode ini harus digunakan oleh pengembang untuk melanjutkan proses apa pun yang tidak aktif saat aplikasi sedang berjalan. 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.
applicationDidBecomeActive – status ini 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. metode ini benar-benar terjadi ketika pengguna sudah dapat melihat di layar, maka perlu ditentukan dari neraca apa yang terjadi pada metode ini dan pada metode sebelumnya. Mereka dipanggil satu demi satu dengan selisih beberapa milidetik.
applicationWillTerminate - keadaan ini terjadi beberapa milidetik sebelum aplikasi dihentikan, yaitu sebelum aplikasi benar-benar dihentikan. Baik secara manual dari multitasking atau saat mematikan perangkat. Cara ini sebaiknya digunakan untuk menyimpan data yang telah diproses dan mengakhiri semua aktivitas serta menghapus data yang tidak diperlukan lagi.
applicationDidReceiveMemoryWarning - dan ini adalah kondisi yang banyak dibahas di sini, jika perlu, iOS akan menghapus aplikasi dari memori jika menggunakan sumber daya sistem secara tidak perlu. Saya tidak tahu persis 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 yang dimilikinya. Jadi metode ini dipanggil dalam aplikasi, dan pengembang harus mengimplementasikannya sehingga aplikasi melepaskan memori yang dimilikinya, menyimpan data yang diproses dan menghapus data yang tidak diperlukan dari memori, dan sebaliknya cukup mengosongkan memori. Memang benar bahwa banyak pengembang, misalnya pemula, tidak memikirkan hal-hal seperti itu atau tidak memahaminya, sehingga aplikasi mereka dapat membahayakan masa pakai baterai dan/atau menghabiskan sumber daya sistem secara tidak perlu bahkan di latar belakang. Saya tidak tahu bagaimana perilaku iOS jika aplikasi tidak melakukan apa pun setelah menerima peringatan memori dan terus menggunakan sumber daya sistem seperti sebelumnya.
Beberapa negara bagian dan metode terkait ini berada di balik keseluruhan "multitasking" di iOS... ini adalah sistem yang bagus jika pengembang tidak mengabaikan kebutuhan untuk bertanggung jawab atas apa yang akan ditampilkan aplikasi di perangkat penggunanya jika diminimalkan atau dapatkan peringatan dari sistem dan banyak lagi…
Saya harap uraian singkat ini membantu Anda memahami bagaimana aplikasi terlibat dalam membuat semuanya berjalan lancar. Jadi hampir mungkin untuk mengatakan bahwa itu adalah kesalahan penggunaan yang salah oleh pengguna, yang dapat dipahami sebagai - jika Anda menggunakan sebagian besar aplikasi gratis dari pengembang amatir dalam jumlah besar, perangkat iOS Anda akan berjalan lebih buruk daripada jika Anda menggunakan yang besar sejumlah aplikasi gratis dan berbayar dari pengembang berpengalaman atau profesional. Hal ini tidak berarti bahwa tidak ada pengecualian di kedua kalangan. Misalnya, foursquare berperilaku sangat aneh dan menuntut, dan pada saat yang sama, orang akan mengira bahwa mereka adalah pengembang yang sangat terampil yang memberikan banyak waktu untuk pengelolaan memori dan baterai, namun yang terjadi justru sebaliknya. Masalah terbesar dengan 4SQ adalah komunikasi dengan server yang sering hang dan kewalahan. Ini hanyalah contoh dari fakta bahwa bahkan aplikasi terkenal pun mengalami masalah, yang tidak mengubah fakta bahwa 4SQ adalah layanan hebat.
Selamat bersenang-senang, Apel!! :)
Kami menambahkan informasi ke artikel dengan izin dari penulis ;-)
Maaf, ENTER ada di mana-mana di antara paragraf, mereka dapat melakukan sesuatu di sini sehingga komentar setidaknya memiliki sedikit PEMBENTUKAN TEKS KAYA.
ArnieX: terima kasih atas komentarnya!!
Faramir itu: Saya baru saja membicarakan masalah Anda, saya tidak tahu apakah itu akan membantu dalam kasus Anda, tetapi saya tahu dari pengalaman saya sendiri bahwa jika Anda menutup aplikasi (dalam multitasking) perlu beberapa detik hingga aplikasi ditutup, jadi jika anda mematikannya saya sarankan menunggu beberapa detik (saya tunggu sekitar 10 detik untuk memastikannya) sampai benar-benar selesai baru kemudian saya mulai lagi.
Sama-sama ;) Saya akan dengan senang hati membantu jika saya mempunyai kesempatan untuk berkontribusi.
Bagaimana dengan Meeb, ketika saya login ke ICQ atau FB chat melalui itu, otomatis logout setelah 10 menit dan saya offline atau terus berfungsi? terima kasih atas klarifikasinya :P
Setelah sepuluh menit, koneksi aplikasi ke Internet terputus. Namun, Anda akan tetap online di server Meeba dan Anda akan menerima pemberitahuan push jika seseorang menulis kepada Anda. Setelah membuka kembali aplikasi, koneksi akan segera terjalin dan Anda dapat terus mengobrol dengan gembira.
Jadi, jika saya memahami artikel yang Anda tautkan dengan benar, statistiknya hanya mengacu pada aplikasi mogok saat dijalankan, yang merupakan persentase yang cukup kecil dari kasus di mana kerusakan dapat terjadi. Oleh karena itu, tidak mungkin menyimpulkan dari "penelitian" ini bahwa iOS menurut saya kurang stabil. Lebih lanjut, penerjemah artikel yang diambil dari Forbes lupa menyebutkan bahwa perusahaan penyedia data kerusakan aplikasi ini didukung antara lain oleh Google ("Critttercism, yang didukung oleh Google Ventures,...").