现在在做一个iOS视频监控软件,程序中经常会处理这种程序退到后台时应该如何处理的情况。
所以想写一下关于iOS程序进入后台之后都干了 什么
在程序中的supporting files ->info.plist->Application does not run in background 可以设置是否允许程序在后台挂起或运行
第一种情况
当应用可以在后台运行时,共经历三个阶段四个状态 active--inactive-background--suspended(活动--到非活动--进入后台---挂起)这些状态有相应的通知
UIApplicationDidBecomeActiveNotification
UIApplicationWillResignActiveNotification
UIApplicationDidEndBackgroundNotification
UIApplicationWillEnterForegroundNotification
UIApplicationWillTerminateNotification
第二种情况
应用不能在后台运行时四个阶段五个状态active--inactive-background--suspended--Not running(活动--到非活动--进入后台---挂起--终止程序)
iOS在iOS4以前是不支持多任务的,点击HOME键应用会退出并中断,而在iOS4以后系统能够支持多任务,点击home键,应用会进入后台进入挂起状态
iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”。除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:
1.用户按Home之后,App转入后台进行运行,此时拥有180s后台时间(iOS7)或者600s(iOS6)运行时间可以处理后台操作
2.当180S或者600S时间过去之后,可以告知系统未完成任务,需要申请继续完成,系统批准申请之后,可以继续运行,但总时间不会超过10分钟。
3.当10分钟时间到之后,无论怎么向系统申请继续后台,系统会强制挂起App,挂起所有后台操作、线程,直到用户再次点击App之后才会继续运行。
当然iOS还是有办法让程序在后台长久运行的,这里不做介绍