Aracılığıyla paylaş


iOS’ta Arka Planda İşlemeye Giriş

iOS, arka plan işlemeyi çok sıkı bir şekilde düzenler ve uygulamak için üç yaklaşım sunar:

  • Arka Plan Görevi Kaydetme - Bir uygulamanın önemli bir görevi tamamlaması gerekiyorsa, uygulama arka plana geçtiğinde iOS'dan görevi kesintiye uğratmasını isteyebilir. Örneğin, bir uygulamanın bir kullanıcıda günlüğe kaydetmeyi bitirmesi veya büyük bir dosyayı indirmeyi bitirmesi gerekebilir.
  • Arka Planda Gerekli Uygulama Olarak Kaydetme - Bir uygulama Ses, VoIP, Dış Donatı, Haber Çubuğu ve Konum gibi bilinen, belirli arka plan gereksinimleri olan belirli bir uygulama türü olarak kaydolabilir. Kayıtlı uygulama türünün parametreleri içinde yer alan görevleri gerçekleştirdikleri sürece bu uygulamalara sürekli arka plan işleme ayrıcalıklarına izin verilir.
  • Arka Plan Güncelleştirmeler Etkinleştirme - Uygulamalar, Bölge İzleme ile veya Önemli Konum Değişikliklerini dinleyerek arka plan güncelleştirmelerini tetikleyebilir. iOS 7 itibarıyla, uygulamalar Arka Plan Getirme veya Uzak Bildirimler kullanarak arka planda içeriği güncelleştirmek için de kaydolabilir.

Uygulama Durumları ve Uygulama Temsilcisi Yöntemleri

iOS'ta arka plan işleme kodunu incelemeden önce, arka plan oluşturmanın bir iOS uygulamasının yaşam döngüsünü nasıl etkilediğini anlamamız gerekir.

iOS uygulama yaşam döngüsü, aralarında geçiş için uygulama durumlarının ve yöntemlerinin bir koleksiyonudur. Bir uygulama, kullanıcının davranışına ve uygulamanın arka plan oluşturma gereksinimlerine göre durumlar arasında geçiş sağlar. Hareket aşağıdaki diyagramda gösterilmiştir:

Application States and Application Delegate Methods diagram

  • Çalışmıyor - Uygulama henüz cihazda başlatılmadı.
  • Çalışıyor/Etkin - Uygulama ekrandadır ve ön planda kod yürütür.
  • Etkin değil - Uygulama gelen bir telefon görüşmesi, kısa mesaj veya başka bir kesinti nedeniyle kesintiye uğrar.
  • Arka planlı - Uygulama arka plana taşınır ve arka plan kodunu yürütmeye devam eder.
  • Askıya Alındı - Uygulamanın arka planda çalıştırılacak kodu yoksa veya tüm kod tamamlandıysa, uygulama işletim sistemi tarafından Askıya Alınır . Askıya alınan bir uygulamanın işlemi canlı tutulur, ancak uygulama bu durumda herhangi bir kod yürütemez.
  • Çalışmıyor/Sonlandırma (Nadir) durumuna geri dönün - Bazen uygulamanın işlemi yok edilir ve uygulama Çalışmıyor durumuna döner. Bu, düşük bellekli durumlarda veya kullanıcı uygulamayı el ile sonlandırırsa gerçekleşir.

Çoklu görev desteği sunulduğundan, iOS boştaki uygulamaları nadiren sonlandırır ve bunun yerine işlemlerini Bellekte Askıya Alındı olarak tutar. Bir uygulamanın işleminin canlı tutulması, kullanıcının bir sonraki açışında uygulamanın hızlı bir şekilde başlatılmasını sağlar. Ayrıca, uygulamaların sistem kaynaklarını çizmeden Askıya Alınmış durumundan Arka planlı duruma serbestçe geçebileceği anlamına gelir. iOS 7, uygulamaların cihaz uyku moduna geçtiğinde arka plan görevlerini duraklatmasını, kullanıcı etkileşimi olmadan içeriği doğrudan arka planda güncelleştirmesini ve daha fazlasını yapmasını sağlayan yeni API'lerle bu özelliği kullanır. iOS Arka Plan Oluşturma Teknikleri'nde yeni API'leri ele alacağız.

Uygulama Yaşam Döngüsü Yöntemleri

Bir uygulama durumu değiştiğinde AppDelegate iOS, sınıfındaki olay yöntemleri aracılığıyla uygulamaya bildirir:

  • OnActivated - Bu, uygulama ilk kez başlatıldığında ve uygulama ön plana her geldiğinde çağrılır. Burası, uygulama her açıldığında çalıştırılması gereken kodun yerleştirıldığı yerdir.
  • OnResignActivation - Kullanıcı kısa mesaj veya telefon görüşmesi gibi bir kesinti alırsa, bu yöntem çağrılır ve uygulama geçici olarak devre dışı bırakılır. Kullanıcı telefon aramasını kabul etmesi durumunda uygulama arka plana gönderilir.
  • DidEnterBackground - Uygulama arka planlı duruma girdiğinde çağrılır, bu yöntem bir uygulamaya olası sonlandırmaya hazırlanmak için yaklaşık beş saniye verir. Kullanıcı verilerini ve görevlerini kaydetmek ve hassas bilgileri ekrandan kaldırmak için bu zamanı kullanın.
  • WillEnterForeground - Bir kullanıcı arka planlı veya askıya alınmış bir uygulamaya döndüğünde ve ön planda WillEnterForeground başlattığında çağrılır. Bu, sırasında DidEnterBackground kaydedilen herhangi bir durumu yeniden doldurma yoluyla uygulamayı ön planı almaya hazırlamanın zamanıdır. OnActivated bu yöntem tamamlandıktan hemen sonra çağrılacaktır.
  • WillTerminate - Uygulama kapatılır ve işlemi yok edilir. Bu yöntem yalnızca cihazda veya işletim sistemi sürümünde çoklu görev kullanılamıyorsa, bellek yetersizse veya kullanıcı arka planlı bir uygulamayı el ile sonlandırırsa çağrılır. Sonlandırılan askıya alınan uygulamaların öğesini çağırmayacağını WillTerminate unutmayın.

Aşağıdaki diyagramda, uygulamanın durumlarının ve yaşam döngüsü yöntemlerinin nasıl bir araya geldiği gösterilmektedir:

This diagram illustrates how the application states and lifecycle methods fit together

iOS'ta Arka Plan oluşturma için Kullanıcı Denetimleri

iOS 7, kullanıcılara uygulamanın arka planlı durumu üzerinde daha fazla denetim sağlamak için çeşitli özellikler sunar. Hem Uygulama Değiştirici hem de Arka Plan Uygulaması Yenileme ayarı, Uygulama Yaşam Döngüsü'ne etki eder.

Uygulama Değiştirici

Uygulama Değiştirici, iOS 7'de kullanıma sunulan önemli bir denetim özelliğidir. Giriş düğmesine iki kez dokunarak başlatılır ve işlemleri canlı olan uygulamaları gösterir:

Moving between apps using the App Switcher

Kullanıcılar, Uygulama Değiştirici'yi kullanarak tüm arka planlı ve askıya alınmış uygulamaların anlık görüntüleri arasında gezinebilir. Bir uygulamaya dokunulduğunda ön planda başlatılır. Yukarı doğru çekme işlemi, uygulamayı arka plandan kaldırarak işlemini sonlandırıyor. Sonraki bölümde iOS Uygulama Yaşam Döngüsü Tanıtımı'ndaki Uygulama Değiştirici'ye daha yakından bakacağız.

Önemli

Uygulama Değiştirici arka planlı ve askıya alınmış uygulamalar arasında bir fark göstermez.

Arka Plan Uygulaması Yenileme Ayarlar

iOS 7, kullanıcıların arka plan işleme için kayıtlı uygulamalar için arka plan oluşturma işlemini geri çevirmesine izin vererek Uygulama Yaşam Döngüsü üzerinde kullanıcı denetimini artırır. Bu, uygulamaların arka plan görevlerini çalıştırmasını engellemez.

Kullanıcılar, Ayarlar > Genel > Arka Plan Uygulaması Yenileme'ye gidip seçili bir uygulamanın arka plan oluşturma ayrıcalıklarını düzenleyerek bu ayarı değiştirebilir. Arka Plan Uygulaması Yenileme kapalı olarak ayarlanırsa, uygulama arka plana girdikten hemen sonra askıya alınır ve herhangi bir arka plan işlemi gerçekleştirmesi engellenir:

Background App Refresh Settings

Geliştiriciler API ile BackgroundRefreshStatus Arka Plan Yenileme Uygulaması durumunu denetleyebiliyor. Örneğin, Arka Plan Yenileme Ayarını Denetle tarifine bakın.

iOS Uygulama Yaşam Döngüsü'ne ilişkin temel bilgileri ve Uygulama Yaşam Döngüsünü denetlemeye yönelik özellikleri ele aldık. Şimdi iOS Uygulama Yaşam Döngüsü'ne göz atalım.