UIAPPLICATIONDELEGATE 代理函数调用的时间(应用程序生命周期)
来源:互联网 发布:网络利大于弊辩论词50 编辑:程序博客网 时间:2024/05/12 09:46
转自:http://blog.csdn.net/fg313071405/article/details/6977682
UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变:
– application:didFinishLaunchingWithOptions:
– applicationDidBecomeActive:
– applicationWillResignActive:
– applicationDidEnterBackground:
– applicationWillEnterForeground:
– applicationWillTerminate:
当一个应用程序首先运行时,调用函数didFinishLaunchingWithOptions,但此时应用程序还处于inactive状态,所以接着会调用applicationDidBecomeActive函数,此时就进入了应用程序的界面了。
接着当按下home键时(此时主界面是应用程序主界面),会调用applicationWillResignActive函数,接着调用applicationDidEnterBackground函数,这时手机回到桌面。
当再按下应用程序图标时,(假设此时应用程序的内存还没有被其他的应用程序挤掉),调用applicationWillEnterForeground函数,接着调用applicationDidBecomeActive函数,此时又会到应用程序主界面。
在应用程序的主界面,我们双击home键,(出现多任务栏),调用applicationWillResignActive函数,点击上面部分又会回到程序中,调用applicationDidBecomeActive函数,如果点击多任务栏的其他应用程序,则会调用applicationDidEnterBackground函数之后,进入其他应用程序的界面。
而对于applicationWillTerminate函数,这里要说明一下:对于我们一般的应用程序,当按下home按钮之后,应用程序会处于一个suspended状态,如果现在去运行其他的程序,当内存不足,或者在多任务栏点击“减号”会完全退出应用程序,但是不管是哪一种,都不会去调用applicationWillTerminate函数(针对IOS4以上),因此我们不能在此函数中保存数据。
那applicationWillTerminate函数在什么时间调用呢?我查了下资料,还在网上找了找,原来这与当应用程序按下home按钮之后,应用程序的状态有关,当状态为suspended时,是永远不会调用此函数的,而当状态为“后台运行”(running in the background)时,当内存不足或者点击“减号”时,才会调用此函数!官方的原话为:
(Even if you develop your application using iPhone SDK 4 and later, you must still be prepared for your application to be terminated. If memory becomes constrained, the system might remove applications from memory in order to make more room. If your application is currently suspended, the system removes your application from memory without any notice. However, if your application is currently running in the background, the system does call the
applicationWillTerminate:
method of the application delegate. Your application cannot request additional background execution time from this method.)大家都知道应用程序的后台运行是有很多限制的,下次有时间讲探讨一下IOS的running in the background~~
0 0
- UIAPPLICATIONDELEGATE 代理函数调用的时间(应用程序生命周期)
- UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
- UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
- UIAPPLICATIONDELEGATE 代理函数调用的时间(应用程序生命周期)
- UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
- UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
- UIApplicationDelegate 代理函数调用的时间(应用程序生命周期)
- UIAPPLICATIONDELEGATE 代理函数调用的时间(应用程序生命周期)
- app的生命周期 和UIApplicationDelegate的代理方法的调用顺序
- UIApplicationDelegate的代理方法
- UIApplicationDelegate的代理方法
- UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变:
- UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变
- 如何获得应用程序的 UIApplicationDelegate
- UIApplicationDelegate与UIViewController生命周期
- tableView代理方法的调用时间,(主要是heightForRowAtIndexPath和cellForRowAtIndexPath调用时间)
- UIApplicationDelegate 应用程序状态
- AppDelegate文件中代理调用的时间
- 初创IT公司里开发者最容易犯的九种错误
- 用Quartz进行作业调度
- <c:if>标签中empty的用法
- 多么痛的领悟!——我的2013拾遗总结
- Java中数组用法
- UIAPPLICATIONDELEGATE 代理函数调用的时间(应用程序生命周期)
- C语言结构体对齐问题详解
- 性能分析工作strace命令用法详解及使用例子
- ARCGIS SERVER用ArcCatalog建立服务时地图显示空白原因
- 当程序不工作时,开发者常用的借口
- Windows7 下环境变量设置
- 从12306火车购票网站谈海量事务高速处理系统
- tomcat6.0设置成windows服务启动与一台机器装多个tomcat
- 在 ACM竞赛中,为什么美国的公认的计算机名校,如 MIT,斯坦福、加州伯克利、卡内基梅隆,表现不如中国和俄罗斯的高校?