如果用户启动iOS应用程序,然后锁定设备,则在设备锁定时iOS应用程序是否处于活动状态?我在Apple的开发者文档中找不到答案.
您可以通过阅读Apple文档UIApplicationDelegete来查找所有不同状态之间的差异.查找标记为" 管理状态转换"的部分,您将找到一个表格,详细说明应用程序可以处于的不同状态.
没跑
该应用尚未由用户或系统启动或终止.
待用
该应用程序在前台运行但未接收事件.(它可能正在执行其他代码.)应用程序通常只在短暂转换到不同状态时保持此状态.进入此状态后,应用程序应将其置于静止状态,并期望很快进入后台或活动状态.
活性
该应用程序在前台运行并接收事件.这是前台应用程序的正常模式.处于活动状态的应用程序没有特殊限制.它是前台应用程序,应该响应用户.
背景
该应用正在执行代码但在屏幕上不可见.当用户退出应用程序时,系统会在暂停应用程序之前将应用程序短暂移动到后台状态.在其他时候,系统可以将应用程序启动到后台(或唤醒暂停的应用程序)并给它时间来处理特定任务.例如,系统可以唤醒应用程序,以便它可以处理后台下载,某些类型的位置事件,远程通知和其他类型的事件.处于后台状态的应用程序应该尽可能少地工作.请求时间处理特定类型事件的应用程序应该处理这些事件并尽快将控制权返回给系统.
暂停
该应用程序在内存中,但不执行代码.系统会暂停后台应用程序并且没有任何待处理任务要完成.系统可以随时清除已暂停的应用,而无需将其唤醒以便为其他应用腾出空间.
根据您的应用具有的权利以及是否应该在后台运行,当手机在锁定屏幕上时,您的应用可能处于两种状态之一.这些不运行,背景或暂停
如果您的应用程序不打算在后台运行,它将进入" 未运行"状态,因为它将被终止并将调用该方法applicationWillTerminate:,当您从锁定屏幕返回时,它将正常重新启动您的应用程序.
如果您的应用程序有权在进入锁定屏幕时在后台运行,它将进入后台状态调用applicationDidEnterBackground:,当您从锁定屏幕返回时,您的应用程序将调用该方法applicationWillEnterForeground:并运行您获取所需的任何代码再次申请处于适当的状态.您可以通过查看用于管理后台执行的文档来创建将在应用程序进入后台状态时运行的后台任务UIApplication
当应用程序具有后台权限但未运行任何代码且应用程序仅位于内存中时,应用程序将进入" 暂停"状态.如果应用程序处于此状态,系统可以随时清除应用程序以在内存中腾出空间.进入或退出此状态时,这不会调用任何方法.
这是Apple文档中的图1
