سؤال

على applicationWillTerminate مندوب الطريقة ليست الحصول على ما يسمى في دائرة الرقابة الداخلية 4.0 عندما تضغط على زر المنزل إنني أرى applicationWillResignActive و applicationDidEnterBackground مندوب طرق الحصول على ما يسمى.

 - (void)applicationWillResignActive:(UIApplication *)application
{
  NSLog(@"Application Did Resign Active");
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
  NSLog(@"Application Did Enter Background");
}

و عندما مزدوج اضغط على زر المنزل مرة أخرى إطلاق التطبيق أجد applicationWillEnterForeground و applicationDidBecomeActive مندوب طرق الحصول على ما يسمى.

 - (void)applicationWillEnterForeground:(UIApplication *)application
{
  NSLog(@"Application Will Enter Foreground");
}



- (void)applicationDidBecomeActive:(UIApplication *)application
{
  NSLog(@"Application Did Become Active");
}

ولكن أريد أن أعرف عندما applicationWillTerminate مندوب سيتم استدعاء الأسلوب حيث كنت تفعل بعض DB/ملف النسخ الاحتياطي الروتينية.

- (void)applicationWillTerminate:(UIApplication *)application{

}

حتى أنني حاولت ضرب الطرح و حذف التطبيق قيد التشغيل في الخلفية , ولكن لا يزال لم يدع أي مندوب الأسلوب.

أي أفكار؟??

هل كانت مفيدة؟

المحلول

من تطبيق اي فون دليل البرمجة:

حتى إذا كنت في وضع التطبيق الخاص بك باستخدام اي فون SDK 4 وما بعدها ، يجب أن يكون لا يزال على استعداد للتطبيق الخاص بك وينبغي إنهاؤها.إذا تصبح الذاكرة مقيدة ، فإن النظام قد إزالة التطبيقات من الذاكرة من أجل كسب المزيد من الغرف.إذا كان التطبيق الخاص بك معلق حاليا ، النظام يزيل التطبيق الخاص بك من الذاكرة دون أي إشعار.ومع ذلك ، إذا كان التطبيق الخاص بك قيد التشغيل حاليا في الخلفية, نظام اتصل على applicationWillTerminate: طريقة تطبيق مندوب.التطبيق الخاص بك لا يمكن طلب المزيد من خلفية وقت التنفيذ من هذا الأسلوب.

لذا نعم ، applicationWillTerminate: عموما لا يسمى في كثير من الأحيان في دائرة الرقابة الداخلية 4.إذا كان لديك لحفظ البيانات ، يمكنك أن تفعل ذلك في كل applicationWillTerminate: و applicationDidEnterBackground:.

نصائح أخرى

WWDC 2010 الدورة اعتماد تعدد المهام في نظام التشغيل اي فون (الجزء 2) يوضح تطبيق التحولات الدولة بشكل جيد للغاية.

لدي حل واحد لإنهاء التطبيقات عندما ينقر المستخدم على زر المنزل في iOS4.هذا استدعاء applicationWillTerminate مندوب الأسلوب بدلا من الدخول في عملية خلفية.

  1. فتح المعلومات الخاصة بك.plist
  2. إضافة مفتاح UIApplicationExitsOnSuspend
  3. تعيين مفتاح جديد نعم

في الواقع يمكنك أيضا استخدام هذه الخطوة القيام بذلك.

  1. فتح المعلومات الخاصة بك.plist
  2. إضافة الرئيسية -> التطبيق لا يعمل في الخلفية
  3. تعيين قيمة هذا المفتاح إلى "نعم"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top