Ios4 iOS应用生命周期4/3GS/iPad vs 2G/3G

Ios4 iOS应用生命周期4/3GS/iPad vs 2G/3G,ios4,lifecycle,Ios4,Lifecycle,我已经阅读了苹果关于应用程序生命周期的文章,并做了一些测试,以确定不同设备上的应用程序生命周期是什么。(除2G外,所有设备均运行iOS 4.x) 我已经测试了支持“多任务”的设备和一些不支持此功能的设备: iPhone 2G/3G应用程序生命周期: (START) - didFinishLunchingWithOptions - applicationDidBecomeActive (HOME PRESSED) - applicationDidEnterBackground - appWill

我已经阅读了苹果关于应用程序生命周期的文章,并做了一些测试,以确定不同设备上的应用程序生命周期是什么。(除2G外,所有设备均运行iOS 4.x)

我已经测试了支持“多任务”的设备和一些不支持此功能的设备:

iPhone 2G/3G应用程序生命周期:

(START)
- didFinishLunchingWithOptions
- applicationDidBecomeActive

(HOME PRESSED)
- applicationDidEnterBackground
- appWillTerminate
iPad/iPhone 4应用程序生命周期:

(START)
- didFinishLunchingWithOptions
- applicationDidBecomeActive

(HOME PRESSED)
- appWillResignActive
- appDidEnterBackGround

(RESART app in the "Taskbar")
- appWillEnterForeGround
- appDidBecomeActive
我试图从“任务栏”中关闭应用程序,但调试器收到SIGKILL!当你以这种方式杀掉应用程序时会发生什么

什么时候在支持“多任务”的设备上调用appWillTerminate?我的结果正确吗

编辑:

引用苹果公司文档中关于appWillTerminate的内容:

对于支持后台执行的应用程序,当用户退出应用程序时,通常不会调用此方法,因为在这种情况下,应用程序只是移动到后台。但是,在应用程序在后台运行(未挂起)并且系统出于某种原因需要终止它的情况下,可以调用此方法


“一般不叫”是什么意思。“系统需要终止它…”意味着将调用方法
appWillTerminate

我想你是对的。当您从任务栏上关闭应用程序时(或者当您的设备内存不足且操作系统为您关闭应用程序时),它只会发送一个SIGKIL信号。正如您所注意到的,它从不调用任何回调

:

适用于支持 后台执行,此方法是 当用户 退出应用程序,因为 应用程序只需移动到 那件事的背景。但是, 方法在某些情况下可能被调用 应用程序正在运行的位置 背景(未挂起)和 系统需要在某些情况下终止它 原因

因此,iOS可以调用
应用程序willterminate:
方法,但可能不会。(我从未见过它。)


如果你想在你的应用程序被终止之前保存任何状态,你需要在它进入后台时进行保存。

我认为你是对的。当您从任务栏上关闭应用程序时(或者当您的设备内存不足且操作系统为您关闭应用程序时),它只会发送一个SIGKIL信号。正如您所注意到的,它从不调用任何回调

:

适用于支持 后台执行,此方法是 当用户 退出应用程序,因为 应用程序只需移动到 那件事的背景。但是, 方法在某些情况下可能被调用 应用程序正在运行的位置 背景(未挂起)和 系统需要在某些情况下终止它 原因

因此,iOS可以调用
应用程序willterminate:
方法,但可能不会。(我从未见过它。)


如果要在应用程序被终止之前保存任何状态,则需要在应用程序进入后台时进行保存。

好的,谢谢。这回答了大部分问题。但是什么时候在支持“多任务”的设备上调用appWillTerminate?更新时引用了文档中的一句话。哦,我同时也这么做了:DOk,谢谢。这回答了大多数问题。但是什么时候在支持“多任务”的设备上调用appWillTerminate?更新时引用了文档中的一句话