Reklamı Kapat

iOS'ta çoklu görevin nasıl çalıştığını hala bilmeyen birçok insan var. Ancak öncelikle bunun gerçek bir çoklu görev olmadığını, sisteme veya kullanıcıya yük getirmeyen, oldukça akıllı bir çözüm olduğunu belirtmek gerekiyor.

iOS'ta arka planda çalışan uygulamaların işletim belleğini doldurduğu, bunun da sistemin yavaşlamasına ve pil ömrünün azalmasına yol açtığı, bu nedenle kullanıcının bunları manuel olarak kapatması gerektiği yönünde batıl inançlar sıklıkla duyulabilir. Çoklu görev çubuğu aslında çalışan tüm arka plan işlemlerinin bir listesini içermez, yalnızca en son başlatılan uygulamaları içerir. Böylece kullanıcının birkaç durum dışında arka planda çalışan işlemler hakkında endişelenmesine gerek kalmaz. Ana Sayfa düğmesine bastığınızda uygulama genellikle uyku moduna geçer veya kapanır, böylece işlemciyi veya pili artık yüklemez ve gerekirse gerekli belleği serbest bırakır.

Yani düzinelerce işleminiz çalışırken bu tam teşekküllü bir çoklu görev değildir.Ön planda her zaman yalnızca bir uygulama çalışır ve bu uygulama gerektiğinde duraklatılır veya tamamen kapatılır. Arka planda yalnızca birkaç ikincil işlem çalışır. Bu nedenle iOS'ta nadiren bir uygulama çökmesiyle karşılaşırsınız; örneğin Android, kullanıcının ilgilenmesi gereken uygulamaları çalıştırmaktan bunalmıştır. Bu, bir yandan cihazla çalışmayı tatsız hale getirirken, diğer yandan örneğin yavaş başlatmaya ve uygulamalar arasında geçişlere neden olur.

Uygulama çalışma zamanı türü

iOS cihazınızdaki uygulama şu 5 durumdan birindedir:

  • Koşma: uygulama başlatıldı ve ön planda çalışıyor
  • Arka plan: hala çalışıyor ama arka planda çalışıyor (diğer uygulamaları kullanabiliriz)
  • Askıya alınmış: Hala RAM kullanıyor ancak çalışmıyor
  • Aktif değil: uygulama çalışıyor ancak dolaylı komutlar (örneğin, uygulama çalışırken cihazı kilitlediğinizde)
  • Koşmak yok: Uygulama sonlandırıldı veya başlatılmadı

Uygulama rahatsız etmemek için arka plana geçtiğinde kafa karışıklığı ortaya çıkıyor. Ana Ekran düğmesine bastığınızda veya uygulamayı (iPad) kapatmak için hareketi kullandığınızda uygulama arka plana geçer. Çoğu uygulama saniyeler içinde askıya alınır (Hızlı bir şekilde başlatılabilmeleri için iDevice'in RAM'inde saklanırlar, işlemciyi fazla yüklemezler ve dolayısıyla pil ömründen tasarruf ederler) Bir uygulama hafızayı kullanmaya devam ederse, serbest bırakmak için manuel olarak silmek için. Ancak bunu yapmak zorunda değilsiniz çünkü iOS bunu sizin için yapacak. Büyük miktarda RAM kullanan bir oyun gibi arka planda askıya alınmış zorlu bir uygulamanız varsa, iOS gerektiğinde bunu otomatik olarak bellekten kaldıracaktır ve uygulama simgesine dokunarak yeniden başlatabilirsiniz.

Bu durumların hiçbiri çoklu görev çubuğuna yansıtılmaz; panel, uygulamanın durdurulmuş, duraklatılmış veya arka planda çalışıyor olmasına bakılmaksızın yalnızca yakın zamanda başlatılan uygulamaların bir listesini gösterir. Ayrıca çalışmakta olan uygulamanın Çoklu Görev panelinde görünmediğini de fark edebilirsiniz.

Arkaplan işlemleri

Normalde Home tuşuna bastığınızda uygulama arka planda çalışacak, eğer kullanmıyorsanız beş saniye içerisinde otomatik olarak duraklayacaktır. Yani örneğin bir podcast indiriyorsanız, sistem onu ​​çalışan bir uygulama olarak değerlendirir ve sonlandırmayı on dakika geciktirir. En geç on dakika sonra işlem hafızadan kaldırılır. Kısacası, indirme işleminin tamamlanması 10 dakikadan fazla sürmüyorsa Ana Sayfa Düğmesine basarak indirme işleminizi yarıda kesmek konusunda endişelenmenize gerek yok.

Arka planda süresiz çalışma

Sistem, işlem yapılmaması durumunda uygulamayı beş saniye içinde sonlandırır, indirme durumunda ise sonlandırma on dakika geciktirilir. Ancak arka planda çalışmasını gerektiren az sayıda uygulama vardır. iOS 5'te arka planda süresiz olarak çalışabilen uygulamalara bazı örnekler:

  • Ses çalan ve bir süreliğine ara verilmesi gereken uygulamalar (telefon görüşmesi sırasında müziğin duraklatılması vb.),
  • Konumunuzu takip eden uygulamalar (navigasyon yazılımı),
  • VoIP çağrılarını alan uygulamalar, örneğin Skype kullanıyorsanız, uygulama arka planda olsa bile çağrı alabilirsiniz,
  • Otomatik indirmeler (örn. Gazete Bayisi).

Artık bir görevi (arka planda indirme gibi) gerçekleştirmiyorlarsa tüm uygulamalar kapatılmalıdır. Ancak yerel Mail uygulaması gibi arka planda sürekli çalışan istisnalar da vardır. Arka planda çalışıyorlarsa hafızayı, CPU kullanımını kaplarlar veya pil ömrünü kısaltırlar.

Arka planda süresiz olarak çalışmasına izin verilen uygulamalar, müzik çalmaktan yeni Podcast bölümlerini indirmeye kadar çalışırken yaptıkları her şeyi yapabilir.

Daha önce de belirttiğim gibi kullanıcının arka planda çalışan uygulamaları kapatmasına hiçbir zaman gerek kalmıyor. Bunun tek istisnası, arka planda çalışan bir uygulamanın çökmesi veya uyku modundan düzgün şekilde uyanmaması durumudur. Kullanıcı daha sonra çoklu görev çubuğunda uygulamaları manuel olarak kapatabilir, ancak bu nadiren olur.

Yani genel olarak arka plan süreçlerini yönetmenize gerek yok çünkü sistem onlarla kendisi ilgilenecek. iOS'un bu kadar taze ve hızlı bir sistem olmasının nedeni budur.

Bir geliştiricinin bakış açısından

Uygulama, çoklu görevin bir parçası olarak toplam altı farklı durumla tepki verebilir:

1. applicationWillResignActive

Çeviride bu durum, uygulamanın gelecekte (birkaç milisaniyelik bir süre içinde) etkin uygulama (yani ön plandaki uygulama) olmaktan çıkacağı anlamına gelir. Bu durum örneğin uygulamayı kullanırken bir çağrı alındığında meydana gelir ancak aynı zamanda bu yöntem uygulama arka plana geçmeden önce de bu duruma neden olur, dolayısıyla bu değişiklikleri dikkate almanız gerekir. Bu yöntem aynı zamanda örneğin bir çağrı geldiğinde yaptığı tüm faaliyetleri askıya alması ve çağrının sonuna kadar beklemesi açısından da uygundur.

2. applicationDidEnterBackground

Durum, uygulamanın arka plana geçtiğini gösterir. Geliştiriciler, arka planda çalışması gerekmeyen tüm işlemleri askıya almak ve hafızadaki kullanılmayan verileri temizlemek ve zamanlayıcıların süresinin dolması, yüklenen görüntülerin ihtiyaç duyulmayan hafızadan temizlenmesi veya kapatılması gibi diğer işlemler için bu yöntemi kullanmalıdır. Uygulamanın bağlantıları arka planda tamamlaması kritik olmadığı sürece sunucularla bağlantılar. Yöntem bir uygulamada çağrıldığında, bir kısmının arka planda çalışması gerekmiyorsa, esasen uygulamayı tamamen askıya almak için kullanılmalıdır.

3. uygulamaWillEnterÖn Plan

Bu durum, uygulamanın aktif duruma geçeceği ilk durumun tersidir. Bu durum, uyku uygulamasının arka plandan devam edeceği ve önümüzdeki birkaç milisaniye içinde ön planda görüneceği anlamına gelir. geliştiriciler, uygulama arka plandayken etkin olmayan tüm işlemleri sürdürmek için bu yöntemi kullanmalıdır. Sunucularla bağlantılar yeniden kurulmalı, zamanlayıcılar sıfırlanmalı, görüntüler ve veriler belleğe yüklenmeli ve diğer gerekli işlemler, kullanıcı yüklenen uygulamayı tekrar görmeden hemen önce devam edebilmelidir.

4. uygulamaEtkin Oldu

Bu durum, uygulamanın ön plana geri yüklendikten sonra etkin hale geldiğini gösterir. Bu, kullanıcı arayüzünde ek ayarlamalar yapmak veya kullanıcı arayüzünü orijinal durumuna geri döndürmek vb. için kullanılabilecek bir yöntemdir. Bu aslında kullanıcının uygulamayı ekranda zaten gördüğü anda gerçekleşir, bu nedenle Bu yöntemde ve önceki yöntemde neler olacağını dikkatle belirleyin. Birkaç milisaniyelik farkla arka arkaya çağrılırlar.

5. uygulamaSonlandırılacak

Bu durum, uygulamadan çıkmadan birkaç milisaniye önce, yani uygulama gerçekten sonlandırılmadan önce gerçekleşir. Çoklu görevden manuel olarak veya cihazı kapatırken. Yöntem, işlenen verilerin kaydedilmesi, tüm faaliyetlerin sonlandırılması ve artık ihtiyaç duyulmayan verilerin silinmesi amacıyla kullanılmalıdır.

6. uygulamaDidReceiveMemoryWarning

En çok tartışılan son durumdur. Uygulamanın sistem kaynaklarını gereksiz yere kullanması durumunda, gerekirse iOS belleğinden kaldırılmasından sorumludur. İOS'un arka plan uygulamalarıyla tam olarak ne yaptığını bilmiyorum, ancak kaynakları diğer işlemlere serbest bırakmak için bir uygulamaya ihtiyacı varsa, sahip olduğu kaynakları serbest bırakması için bir bellek uyarısıyla onu ister. Yani uygulamada bu yöntem çağrılıyor. Geliştiriciler, uygulamanın ayırdığı bellekten vazgeçmesi, devam eden her şeyi kaydetmesi, gereksiz verileri bellekten temizlemesi ve aksi takdirde belleği yeterince boşaltması için bunu uygulamalıdır. Pek çok geliştiricinin, hatta yeni başlayanların bile bu tür şeyleri düşünmediği veya anlamadığı doğrudur ve bu durumda uygulamalarının pil ömrünü tehdit etmesi ve/veya arka planda bile sistem kaynaklarını gereksiz yere tüketmesi mümkündür.

hüküm

Bu altı durum ve bunlarla ilişkili yöntemler, iOS'taki tüm "çoklu görevlerin" arka planını oluşturur. Bu harika bir sistem, geliştiriciler, uygulamanın kullanıcı cihazlarına ne attığı, simge durumuna küçültülmesi veya sistemden uyarı alması vb. konusunda sorumlu olunması gerektiği gerçeğini göz ardı etmedikleri sürece.

kaynak: macworld.com

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

 
Sizin de çözmeniz gereken bir sorununuz var mı? Tavsiyeye mi ihtiyacınız var yoksa doğru uygulamayı mı buluyorsunuz? Bölümdeki form aracılığıyla bizimle iletişime geçmekten çekinmeyin. Danışmanlık, bir dahaki sefere sorunuzu cevaplayacağız.

.