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.
Halo, artikel yang sangat menarik, tetapi saya tertanya-tanya jika anda mempunyai sebarang sokongan teknikal untuknya. Kerana saya telah menyelesaikan bateri beberapa kali pada waktu petang sebelum tidur dan kebetulan dengan wifi dan data mudah alih dimatikan, ia mengambil masa lebih daripada dalam kes lain dengan wifi dimatikan dan hanya 3G.
Malangnya, pengalamannya ialah dalam iOS, aplikasi perlu dimatikan secara manual, dan sistem tidak lagi berjalan sebaik sebelum ini.
Saya menggantikan iPhone saya dengan Telefon Windows (Samsung Omnia W untuk 6200,-) dan kelajuan sistem berada pada tahap yang berbeza sama sekali.
Saya takut apabila tablet Windows 8 Metro keluar, saya juga akan menggantikan iPad ...
@007 – ya, jika anda membandingkan iPhone3G lama dengan WP baharu, maka ya (siapa yang menjangkakan?) WP akan menjadi lebih pantas. Jika tidak, gosip tentang Karlulka tidak sesuai dengan anda dan adalah wajar untuk membandingkan HW semasa. Saya juga membeli WP7 dan akhirnya berakhir dengan 4s, yang mewakili tahap kebolehgunaan yang sama sekali berbeza daripada WP7. Jadi lulus dengan senang hati dan tatal tanpa henti melalui jubin.
Saya sangat bersetuju dengan Paja
Saya akan menyumbang sekali lagi daripada serpihan tong lain - Samsung Galaxy S dan iPhone 4 - Saya akan katakan setanding dari segi umur? Pada masa iOS 4, dan dari segi kebolehgunaan dan kelajuan di suatu tempat selain Android, Apple telah menyelesaikan konsep bekerja dengan aplikasi dengan sangat baik, tetapi perkara yang sama tidak lagi berlaku dengan Android. Pada akhirnya, saya berakhir dengan 4S pula dan saya tidak mempunyai aduan, kerana "ia hanya berfungsi" .. dan ia berfungsi dengan cepat!
Teori itu cantik... Tetapi secara praktikal, saya masih menutup aplikasi di bar ;)
Terima kasih, sangat menarik, pragmatik, menarik, ia tidak kekurangan ayunan dan kedalaman. Secara ketara menggariskan obsesi belia hari ini dengan jenama terlarang ini! Tetapi terima kasih untuknya, dan juga untuk artikel ini.
Artikel itu salah sama sekali.
Aplikasi tidak berhenti apabila butang Utama ditekan, seperti yang dinyatakan secara salah, tetapi berhenti seketika. i.e. pasti jangan padam dari ingatan dan jangan berhenti. Hanya jeda larian, iOS akan memberikan apl ini 0% masa CPU. Ia pasti tidak "bertukar" di mana-mana dalam memori iDevice, seperti yang dinyatakan dalam artikel. Ia benar-benar terima kasih kepada fakta bahawa ia adalah mungkin untuk menggunakan penukaran aplikasi.
Aplikasi dialih keluar daripada memori apabila telefon mempunyai sedikit memori untuk menjalankan aplikasi lain dengan keutamaan yang lebih tinggi (biasanya aplikasi lain sedang berjalan di latar depan).
Dalam kes pertama, anda betul, ia adalah ralat terjemahan. Bagi pertukaran, kami tidak bercakap tentang itu di sini, kami bercakap tentang memori operasi, bukan ruang storan dalam peranti iOS.
imej aplikasi disimpan dalam ingatan untuk masa yang terhad sehingga ia dipanggil semula dengan arahan (lihat 13,7 GB daripada 16 GB: 2,3 GB dikhaskan untuk sistem dan aplikasi yang digantung)
Oleh itu, adalah perlu untuk membezakan antara aplikasi seperti Navigasi, Skype dan seumpamanya, aplikasi ini kekal aktif walaupun di latar belakang, atau fungsi tertentu tidak berakhir dan berterusan, sebagai contoh, untuk menghantar data mengenai lokasi atau maklumat lokasinya. Atau seperti Vokul dalam mod pord mendengar dan multitasking masih mendengar di latar belakang.
Aplikasi ini mengalirkan bateri dan perlu menutupnya secara manual dan tidak menunggu iOS. dengan yang lain ia tidak perlu, di sana hanya sekiranya aplikasi itu ranap.
Saya tidak bersetuju dengan artikel itu. Min. pada iPad generasi pertama (iOS 1) adalah jelas untuk melihat sama ada saya mempunyai banyak apl "terbuka" dalam bar berbilang tugas atau hanya beberapa. iOS cuba membersihkan memori, tetapi ia jelas tidak mencukupi - saiz kecil RAM mungkin merupakan kelemahan terbesarnya.
jadi banyak bergantung pada sistem dan perkakasan yang digunakan, agak logik bahawa ia akan menjadi lebih teruk pada iPad 1 dengan iOS 5.0.1 berbanding jika ia pada iPad generasi ke-2
Maaf kawan, ini adalah penerangan tentang cara IDEAL yang sepatutnya berfungsi. Malangnya, realitinya sama sekali berbeza dan anda akan tahu jika anda menggunakan produk Apple, sekurang-kurangnya sama seperti saya (iaitu kadang-kadang).
"Anda sering mendengar khurafat bahawa aplikasi yang berjalan di latar belakang dalam iOS mengisi memori operasi,"
Ia bukan khurafat, ia hanya fakta. Lagipun, anda menuntutnya sendiri dalam artikel itu.
"Seperti yang saya nyatakan sebelum ini, pengguna tidak perlu menutup aplikasi yang berjalan di latar belakang."
BURUH. Itu hanya omong kosong, propaganda epal, jangan marah saya.
“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 memulakan semula dengan mengetik ikon aplikasi."
Tidak betul. Keadaannya sedikit berbeza. Contoh biasa - Saya mempunyai aplikasi yang menuntut berjalan di latar belakang, saya memerlukan permainan. Saya melancarkan penyemak imbas, buka beberapa tab -> memerlukan lebih banyak memori. Apa yang akan berlaku? Saya terus menuntut aplikasi di latar belakang, sebaliknya, PENYEMAK SENDIRI JATUH. Jika saya menutup aplikasi yang menuntut secara manual, penyemak imbas berfungsi untuk masa yang lama tanpa sebarang masalah.
Ini amalan, bukan teori. Dan saya terkejut bahawa, sebagai pengguna jangka panjang produk Apple, anda masih tidak mengetahui perkara ini.
Terima kasih, ini diterangkan dengan baik dan dijelaskan dengan baik. Anda telah banyak membantu saya ;-) ♥
Hanya untuk pengenalan, saya tidak menyokong atau menentang iOS, sama seperti dengan Android, tetapi terdapat beberapa perkara pelik di sini, jika seperti yang tertulis di sini: "anda jarang menghadapi ranap aplikasi dengan iOS", kemudian dengan Android, aplikasi mungkin ranap setahun sekali: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Ya, tetapi kes apabila anda perlu menutup aplikasi secara manual adalah sangat minimum, saya menggunakannya kira-kira sekali? ;-) dan memberikan pautan kepada ujian perbandingan dari Mobilemania agak sia-sia, apabila saya ingin membaca tentang pengiklanan yang Google bayar, saya akan melihat di sana ;-) semua orang boleh mendapatkan mana-mana telefon android di tangan mereka dan ia tidak akan berjalan dengan bersih, iaitu, dengan pengecualian Galaxy Nexus, iaitu sistemnya lebih kurang dibuat khusus. Secara keseluruhan, android adalah bencana
@Mek – Saya telah menggunakan produk Apple setiap hari selama beberapa tahun dan ini tidak pernah berlaku kepada saya, jadi teori anda entah bagaimana tidak berfungsi.
RUMPAI:
@redakce – Anda boleh melihat bahawa tapak web sentiasa diusahakan atau sesuatu sedang berlaku dengannya, tetapi saya merasakan ia tidak mengambil masa seminggu untuk semuanya berfungsi sebagaimana mestinya. Dan saya tidak datang ke sini lagi, kerana wajah baru tidak sesuai dengan saya. Sekurang-kurangnya saya menggunakan versi mudah alih pada iPhone, tetapi kini ia tidak berfungsi sama sekali - bagaimana? Mereka pada masa ini tidak membalas siaran dalam ulasan.
@SteveJSF Malangnya, perkara tidak selalu menjadi seperti yang kita mahukan. Bagi jawapan, pemalam SEO baharu memecahkannya, ia sedang diselesaikan.
WP-Touch juga telah menamatkan perkhidmatan kami atas sebab tertentu, jadi kami memutuskan untuk menghasilkan penyelesaian yang lebih baik daripada pemalam ini. Jadi anda boleh nantikan berita seterusnya tidak lama lagi :-)
artikel yang bagus. Setakat amalan, saya ingin mengatakan bahawa saya bersetuju dengan beberapa perkara dan kebanyakan masa ia berfungsi seperti yang dinyatakan, tetapi malangnya masih terdapat aplikasi bertulis yang kurang baik yang tidak berkelakuan dengan betul, dan kemudian terdapat kes seperti itu diperhatikan oleh beberapa pembaca. Saya berpendapat bahawa Skype adalah contoh yang sangat baik, saya tahu dari latihan bahawa ia masih berjalan di latar belakang (dan tidak mengapa dan begitulah sepatutnya), tetapi masalahnya ialah aplikasi ini menghabiskan banyak bateri peranti dan Saya tidak dapat melihatnya dengan betul lagi. Sebaliknya, aplikasi seperti Facebook, Badoo, dll. mereka juga masih berjalan di latar belakang, tetapi penggunaan mereka hampir tidak dapat dilihat (sekurang-kurangnya saya tidak perasan). Jadi saya fikir ralat adalah dalam aplikasi individu. Jika anda tahu yang mana, sudah cukup untuk mematikannya secara manual sahaja!
Jadi amalannya ialah Facebook berjalan mengikut keperluan dan Skype hanya apabila diperlukan.
Sebaliknya, jika saya perlu menjimatkan bateri dan saya tahu saya perlu memastikan iPhone "hidup" selama mungkin, saya juga mematikan semua yang tidak perlu dalam multitasking, tetapi kebanyakannya ia tidak memberi kesan yang besar, tetapi jika perlu saya mengehadkan 3G, semua internet mudah alih, WiFi, perkhidmatan lokasi , mod kapal terbang, kekuatan pencahayaan, dll. Sebagai sebahagian daripada rutin, saya juga mematikan aplikasi yang disebutkan di atas dalam berbilang tugas.
Jadi secara peribadi saya fikir artikel itu benar, malangnya sesetengah pengaturcara menafikan perkara ini dengan aplikasi mereka, kerana aplikasi mereka tidak betul dan pada pendapat saya hanya ada dua penyelesaian untuk ini 1. Jika mungkin untuk tidak menggunakan aplikasi dan mencari alternatif jika boleh, atau 2. Jika tidak boleh, lihat mis. Skype, tuliskannya kepada pengaturcara yang diberikan dalam laporan dan berharap mereka akan melakukan sesuatu mengenainya.
Mungkin sia-sia untuk melumpuhkan apl secara manual, tetapi saya melakukannya juga. Saya juga cuba untuk tidak mematikan sistem aplikasi, biarkan mereka berjalan (atau biarkan mereka tertidur di latar belakang) dan hayat bateri jauh lebih rendah, ia juga perlu untuk memulakan semula iPad 2 selepas kira-kira tiga minggu, ia bertindak balas dengan perlahan. Jadi saya matikan apl secara manual, bateri tahan lebih lama, baru-baru ini saya but semula pada Hari Krismas dan ia berjalan lancar.
Ngomong-ngomong, saya melakukan perkara yang sama dalam Mac OS X, saya hanya menutup aplikasi yang saya tidak perlukan (CMD+Q), ia lebih baik daripada membiarkannya tidur di latar belakang dan memakan RAM secara tidak perlu (yang OS X boleh ' t berfungsi dengan sangat baik). Saya mempunyai sedikit RAM, hanya 8 GB, tetapi dalam Windows 7 dengan 8 GB, sistem tidak bertindak balas dengan perlahan atau bertukar, dalam OS X ini adalah fenomena yang agak biasa (saya tidak pernah mematikan komputer, saya melakukannya dengan Mac juga, jadi sebulan dan lebih banyak masa tidak terkecuali, masalahnya ialah saya kadang-kadang perlu memulakan semula Mac sebagai langkah berjaga-jaga untuk membebaskan RAM dan "mempercepatkan", Windows 7 tidak memerlukan ini).
Saya lebih berminat dengan cara benar-benar meledakkan aplikasi. Apa yang berlaku kepada saya ialah aplikasi (khususnya pada Geocaching) masuk ke dalam keadaan di mana ia memuatkan sesuatu daripada pelayan induk dan tersekat dalam keadaan itu. Butang utama berfungsi, selepas but semula ia kembali ke keadaan beku (tempat saya berhenti). Keluar manual (ke menu multitasting, tahan ikon dan tolak untuk menutup) = aplikasi hilang, selepas dimulakan semula ia dibuka dalam keadaan asalnya di mana ia membeku. Jadi saya menutup segala-galanya, mematikan telefon, menghidupkannya, mengklik dua kali HOME dan lihatlah – semua aplikasi ada di sana seperti sebelum ditutup sejurus sebelum dimatikan. Mulakan semula juga tidak membantu - tahan ke rumah dan bahagian atas sehingga panas. Satu-satunya perkara yang membantu ialah mengalih keluar aplikasi daripada telefon, memulakan semula dan memasang semula pada telefon. Entah bagaimana saya tidak mengambilnya.
Pengurusan Multitasking ini berfungsi dan terpulang kepada pembangun untuk menghadapi situasi ini. Bagi mereka yang berminat dengan penerangan yang lebih terperinci dan profesional tentang keseluruhan keadaan, saya akan menulis di sini bagaimana keadaannya.
Permohonan boleh bertindak balas kepada sejumlah 6 negeri dan negeri ini ialah:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
aplikasiDidBecomeActive
aplikasiWillTerminate
applicationDidReceiveMemoryWarning
Sekarang saya akan cuba menerangkan keadaan ini dengan lebih terperinci.
applicationWillResignActive – keadaan ini bermakna bahawa pada masa hadapan (kira beberapa milisaat) aplikasi akan meletak jawatan sebagai aplikasi aktif (iaitu aplikasi latar depan) ini berlaku sebagai contoh apabila menerima panggilan semasa menggunakan aplikasi, tetapi pada masa yang sama ini Oleh itu, keadaan ini akan mencetuskan walaupun 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.
applicationDidEnterBackground - status ini menunjukkan bahawa aplikasi telah memasuki latar belakang, pembangun harus menggunakan kaedah ini untuk menggantung semua proses yang tidak semestinya perlu dijalankan di latar belakang dan membersihkan memori data yang tidak digunakan dan proses lain, contohnya, pemasa tamat tempoh, kosongkan daripada imej yang dimuatkan memori yang tidak semestinya diperlukan atau menamatkan sambungan dengan pelayan jika tidak penting untuk aplikasi melengkapkan sambungan di latar belakang. Pada asasnya, kaedah ini apabila dipanggil dalam aplikasi harus digunakan untuk menggantung sepenuhnya aplikasi jika sebahagian daripadanya tidak diperlukan untuk dijalankan di latar belakang.
applicationWillEnterForeground - keadaan ini adalah bertentangan dengan keadaan pertama apabila permohonan akan meletak jawatan ke keadaan aktif. Keadaan aplikasi ini hanya bermaksud bahawa dalam beberapa milisaat seterusnya aplikasi tidur akan disambung semula dari latar belakang dan muncul di latar depan (aplikasi memasuki latar depan), kaedah ini harus digunakan oleh pembangun untuk menyambung semula sebarang proses yang tidak aktif semasa aplikasi itu di latar belakang , sambungan ke pelayan harus diwujudkan semula, penetapan semula pemasa, imej dan data dimuatkan ke dalam ingatan, dan proses lain yang diperlukan boleh disambung semula sejurus sebelum pengguna melihat aplikasi yang dimuatkan semula.
applicationDidBecomeActive – status ini menunjukkan bahawa aplikasi baru sahaja aktif selepas dipulihkan ke latar depan, ini adalah kaedah yang boleh digunakan untuk membuat pelarasan tambahan pada antara muka pengguna atau memulihkan UI kepada keadaan asalnya, dsb. kaedah ini sebenarnya berlaku apabila pengguna sudah boleh melihat pada paparan, jadi adalah perlu untuk menentukan dari kunci kira-kira apa yang berlaku dalam kaedah ini dan dalam kaedah sebelumnya. Mereka dipanggil satu demi satu dengan perbezaan beberapa milisaat.
applicationWillTerminate - keadaan ini berlaku beberapa milisaat sebelum aplikasi ditamatkan, 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 dan untuk menamatkan semua aktiviti dan memadam data yang tidak lagi diperlukan.
applicationDidReceiveMemoryWarning - dan ini adalah syarat yang banyak dibincangkan di sini, jika perlu, iOS akan mengalih keluar aplikasi daripada memori jika ia menggunakan sumber sistem secara tidak perlu. Saya tidak tahu dengan tepat apa yang iOS lakukan dengan apl latar belakang, tetapi jika ia memerlukan apl untuk mengeluarkan sumber kepada proses lain, ia menggesanya dengan amaran ingatan untuk melepaskan sumber yang dipegangnya. Jadi kaedah ini dipanggil dalam aplikasi, dan pembangun harus melaksanakannya supaya aplikasi melepaskan memori yang dimilikinya, menyimpan yang diproses dan memadam data yang tidak perlu daripada memori, dan sebaliknya membebaskan memori dengan secukupnya. Memang benar bahawa ramai pembangun, contohnya pemula, tidak memikirkan perkara sedemikian atau tidak memahaminya, dan kemudian ia boleh berlaku bahawa aplikasi mereka membahayakan hayat bateri dan/atau tidak perlu menggunakan sumber sistem walaupun di latar belakang. Saya tidak tahu bagaimana iOS akan bertindak jika aplikasi tidak melakukan apa-apa selepas menerima amaran memori dan terus menggunakan sumber sistem seperti sebelum ini.
Beberapa negeri dan kaedah yang berkaitan ini berada di sebalik keseluruhan "berbilang tugas" dalam iOS... ia adalah sistem yang hebat jika pembangun tidak mengabaikan keperluan untuk bertanggungjawab tentang perkara yang akan dilontarkan oleh aplikasi pada peranti pengguna mereka jika ia diminimumkan atau dapatkan amaran daripada sistem dan banyak lagi…
Saya harap penerangan ringkas ini membantu anda memahami bagaimana aplikasi terlibat dalam menjadikan semuanya berfungsi dengan lancar. Oleh itu, hampir mungkin untuk mengatakan bahawa ia adalah kesilapan penggunaan yang salah oleh pengguna, yang boleh difahami sebagai - jika anda menggunakan kebanyakan aplikasi percuma daripada pembangun amatur dalam jumlah besar, peranti iOS anda akan berjalan lebih teruk daripada jika anda menggunakan yang besar. bilangan aplikasi percuma dan berbayar daripada pembangun berpengalaman atau profesional. Ini bukan untuk mengatakan bahawa tiada pengecualian dalam kedua-dua kalangan. Sebagai contoh, foursquare berkelakuan agak pelik dan menuntut, dan pada masa yang sama, seseorang akan menjangkakan bahawa mereka adalah pembangun yang sangat mahir yang memberikan banyak masa kepada pengurusan memori dan bateri, tetapi sebaliknya adalah benar. Masalah terbesar dengan 4SQ ialah komunikasi dengan pelayan, yang sering hang dan terharu. Ini hanyalah satu contoh fakta bahawa walaupun aplikasi terkenal mempunyai masalah, yang tidak mengubah fakta bahawa 4SQ adalah perkhidmatan yang hebat.
Selamat mencuba Epal!! :)
Kami menambah maklumat pada artikel dengan kebenaran pengarang ;-)
Saya minta maaf, ENTER berada di mana-mana antara perenggan, mereka boleh melakukan sesuatu mengenainya di sini supaya komen mempunyai sekurang-kurangnya sedikit PEMBENTUKAN TEKS KAYA.
ArnieX: terima kasih atas komen!!
Faramir itu: Saya hanya tentang masalah anda, saya tidak tahu sama ada ia akan membantu dalam kes anda, tetapi saya tahu dari pengalaman saya sendiri bahawa jika anda menutup aplikasi (dalam multitasking) ia mengambil masa beberapa saat sehingga ia ditutup, jadi jika anda mematikannya Saya cadangkan menunggu beberapa saat (saya saya tunggu lebih kurang 10 saat untuk memastikan) sehingga ia pasti selesai dan barulah saya memulakannya semula.
Anda dialu-alukan ;) Saya akan berbesar hati untuk membantu jika saya mempunyai peluang untuk menyumbang.
Bagaimana ia sepatutnya dengan Meeb, apabila saya log masuk ke ICQ atau sembang FB melaluinya, ia secara automatik log keluar selepas 10 minit dan saya pergi ke luar talian atau adakah ia terus berfungsi? terima kasih atas penjelasan :P
Selepas sepuluh minit, sambungan aplikasi ke Internet hanya terganggu. Walau bagaimanapun, anda masih akan berada dalam talian pada pelayan Meeba dan anda akan menerima pemberitahuan tolak jika seseorang menulis kepada anda. Selepas membuka semula aplikasi, sambungan akan diwujudkan dalam seketika dan anda boleh terus berbual dengan gembira.
Jadi, jika saya memahami artikel yang anda pautkan dengan betul, statistik tersebut hanya merujuk kepada ranap aplikasi apabila ia bermula, iaitu peratusan yang agak kecil daripada kes ranap boleh berlaku. Oleh itu, adalah mustahil untuk membuat kesimpulan daripada "penyelidikan" ini bahawa iOS kurang stabil pada pendapat saya. Tambahan pula, penterjemah artikel yang diambil dari Forbes terlupa untuk menyebut bahawa syarikat yang menyediakan data tentang ranap aplikasi disokong, antara lain, Google ("Crittercism, yang disokong oleh Google Ventures,...").