SORU
11 Temmuz 2011, PAZARTESİ


Bir iOS uygulama arka plana çıktığında, uzun görevler durdurulmaz?

Evet, eğer benim app kullanıcıları için duyarlı' başka bir uygulamaya geçmek gibi eylemler çoklu görev ile başa çıkmam gerekiyor . olmak istiyorum

- (void)applicationWillResignActive:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application

Eğer benim app alıcı operasyonu (büyük bir dosya indirme gibi) ve kullanıcı benim app arka plan sokar oldukça uzun bir zaman yapıyorsa? Bu işlemi otomatik olarak kullanıcı geri uygulamam için geldiğinde askıya ve devam edecek?

Tam olarak benim app arka plan girer ya da ön planda devam ettiğinde sahne arkasında ne olacak?

Eğer kullanıcı benim app arka plana gidelim zaman benim app yürütme yöntemi ortasında ise sadece ne?

Örneğin, benim uygulama yapıyor

for (int i = 1 to 10000K) {
    do some calculation;
}

Ben başka bir uygulama için== 500 k, kullanıcı geçirir. -Döngü benim app ne olacak?

CEVAP
11 Temmuz 2011, PAZARTESİ


iOS App Programming Guide:

App temsilci applicationDidEnterBackground: yöntemi vardır yaklaşık 5 saniye herhangi bir görevi tamamlamak ve geri dönmek için. Uygulamada, bu yöntem, mümkün olduğunca hızlı bir şekilde dönmesi gerekir. Eğer yöntemi varsa önce zaman biterse geri, uygulamanızı öldürdü ve temizlendi. bellek. Eğer hala görevleri gerçekleştirmek için daha fazla zamana ihtiyacınız varsa, çağrı beginBackgroundTaskWithExpirationHandler: istek arka plan için yöntem yürütme zamanı ve bir ikincil uzun zamandır devam eden herhangi bir görevi başlatın iplik. Herhangi bir arka plan görevi başlatmak ne olursa olsun, 6* *yöntem hala 5 dakika içinde çıkmanız gerekiyor saniye.

Yukarıda tarif uzun süren operasyonun ana iş parçacığı ve uygulama arka plana kafaları sonra daha uzun bitirmek için 5 saniye daha sürse, uygulamanızı öldürülecek. Ana iş parçacığı engellenir ve zaman içinde -applicationDidEnterBackground: dönmek için bir şansın olamaz.

Eğer görev üzerinde çalışan bir arka plan iş parçacığı (ve dürüst olmalı, eğer alarak uzun çalıştırmak için), bu iş parçacığı görünüyor duraklatıldı uygulama verir -applicationDidEnterBackground: (göre tartışma this answer). Uygulama ön plana geldiğinde devam edilecektir.

Ancak, ikinci durumda hala başvuru plana yukarı doğru şeyleri temizleyerek arka planda herhangi bir zamanda sona erdirilecek için hazır olmalıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • circuschina

    circuschina

    16 Mart 2007
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • Drakinen

    Drakinen

    1 EYLÜL 2008