app*_*eak 7 background application-state uiapplication ios5
我对这两个州有点困惑.以下是我的理解;
当应用程序处于后台并且如果您
"Application does not run in background"
在App plist文件中设置为NO,则App继续在后台运行.在挂起模式下,App保留在内存中但不执行代码!系统在移动到Suspended状态时不会通知App,并在内存不足的情况下从内存中清除App以为前台Apps创建空间.
我的理解是否正确?如果是这样,那么当App在后台运行并执行代码时,为什么不在控制台上打印我的NSLog?我的TCP套接字连接实际发生了什么,我不断从服务器获取数据?为什么我们需要Suspended状态无论如何系统最终会在低内存情况下从内存中清除App.App从暂停状态变为活跃状态还是重新开始是否有任何区别?
您应该查看IOS App Programming Guide 部分“App States and Multitasking”。通过将短语“App States and Multitasking”和“Hits Must”项设置为“Match Search Term”来搜索 Xcode 文档。另一个有用的搜索短语:“后台执行”。
总结的答案是,应用程序可以无限期地在后台继续“执行”,原因有限:
在 iOS 中,只允许特定类型的应用程序在后台运行:
- 在后台向用户播放可听内容的应用程序,例如音乐播放器应用程序
- 让用户随时了解其位置的应用程序,例如导航应用程序
- 支持互联网协议语音 (VoIP) 的应用
- 需要下载和处理新内容的报亭应用
- 从外部配件接收定期更新的应用程序
除了这些特定操作之外,应用程序还可以要求在很短的时间内继续执行,文档在“在后台执行有限长度任务”一节中对此进行了介绍。不久之后,您的应用要么告诉系统它已完成(然后被挂起),要么被强行终止。文档中的详细信息。
该文档的另一个有用的部分是“管理应用程序状态更改”部分,带有漂亮的状态图。该部分讨论进入后台和返回前台。它应该可以回答您关于重新开始与从暂停状态开始之间的区别的问题。简短(不太正确)的答案是,如果您从挂起状态开始,并且在进入后台或(重新)进入前台时没有采取任何特殊操作,那么您只需或多或少地从您所在的位置继续. 此外,从挂起状态开始会更快。阅读文档,因为它比我的释义要好得多。
归档时间: |
|
查看次数: |
5183 次 |
最近记录: |