iOS 程序进入后台到底发生了什么?

  如今在作一个iOS视频监控软件,程序中常常会处理这种程序退到后台时应该如何处理的状况。spa

因此想写一下关于iOS程序进入后台以后都干了 什么线程

  在程序中的supporting files ->info.plist->Application does not run in background 能够设置是否容许程序在后台挂起或运行视频

第一种状况 开发

 当应用能够在后台运行时,共经历三个阶段四个状态 active--inactive-background--suspended(活动--到非活动--进入后台---挂起)这些状态有相应的通知io

UIApplicationDidBecomeActiveNotification后台

UIApplicationWillResignActiveNotification
监控

UIApplicationDidEndBackgroundNotification
软件

UIApplicationWillEnterForegroundNotificationfile

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仍是有办法让程序在后台长久运行的,这里不作介绍