En iyi bahsiniz, uygulamanızda arka plana geçiş yaptığınız için, uygulamanızda hangi temizleme gereksinimlerinin (kaydetme durumu veya kullanıcı verileri, vb.) Yapılması gerektiğinden emin olmaktır. Başvurunuz askıya alınırsa, sistem tarafından sonlandırılmadan önce herhangi bir son kodu gerçekleştirme şansınız olmaz. iOS Application Programming Guide itibaren
: yöntem böylece sen gerçekleştirebileceği:
Başvurunuz sonlandırma anda (ön veya arka planda ya ) çalışıyorsa, sistem sizin uygulamanızın yetki applicationWillTerminate çağırır Herhangi bir gerekli temizleme. Bu yöntemi kullanıcı verilerini veya uygulama durumunu kullanacağınız bilgileri kullanarak daha sonraki bir başlatmayla uygulamanızı geçerli durumuna geri yükleyebilirsiniz. Yöntem uygulamanız, görevlerini gerçekleştirmek ve geri dönmek için yaklaşık 5 saniye sahiptir. zamanında geri dönmezse, uygulama öldürülür ve bellekten kaldırılır. Uygulamanız, applicationWillTerminate: , uygulamanız şu anda askıya alınmış olan ise çağrılmaz. iOS SDK 4 kullanarak başvurunuzu geliştirmek ve daha sonra, hala uygulamaya için hazır olmalıdır bile
herhangi bir bildirim yapılmaksızın öldürülmek. Kullanıcı, çoklu görev UI'sini kullanarak uygulamaları açıkça öldürebilir. Ayrıca, bellek kısıtlandığında, sistem daha fazla odası yapmak için uygulamalarını bellekten silebilir.Uygulamanız şu anda askıya alınmışsa, sistem uygulamanızı öldürür ve numaralı telefondan herhangi bir bildirimde bulunmadan kaldırır. Ancak, uygulamanız şu anda uygulamasında arka plan durumdaysa (diğer bir deyişle, askıya alınmazsa), sistem applicationWillTerminate: yöntemini uygulama temsilcisine çağırır. uygulamanız, bu yönteminden ek arka plan yürütme süresi talep edemez.
Neden kapatıldı? Bu bana iyi bir soru gibi görünüyor. –
@WTP, Brad tarafından yapılan kahramanca düzenlemeden önce görmüş olmalı :) –
@Michael Stum: aslında, bu yorum düzenlemeden daha eski. Bazı dilbilgisel hatalar benim için gerçekten önemli değil. Sorulduğu açıksa, harika. –