后台程序

基本概念:

IOS4 以后,引入了多任务的概念。在用户按下home键时,当前的app会立即转入后台模式,不会像IOS4之前那样,立即被系统干掉。app仍然驻留在内存中,并且可以向系统注册执行后台任务,比如播放音乐。但是IOS上的多任务与传统的多任务是不同的,app自身在转入后台之后,是被冻结住的,所注册的后台任务,必须放在独立的线程中,并且任务的类型是固定的。也就是说你所能执行的后台代码是有限制的。

 

基本流程:

当用户按下home键时,当前的应用程序就会立即转入后台模式,流程如下:

资源释放:

当app转入后台模式,系统不会释放app的核心数据,比如自定义的object,view,window,等等这些一但释放,无法回复的东西。但是一些系统维护的后台资源,比如缓存的图片,数据。

 

applicationDidEnterBackground:

通常在这个函数中,需要做一些数据保存的工作。因为当系统进入低内存状态后,任何后台程序都有可能被系统干掉,从而收回内存。并且如果在后台状态下,被系统干掉,app是不会收到任何通知的。需要注意的是,这个函数最多只能执行5s,如果超过,app就会被系统干掉。

 

程序终结:

如果你的app不希望进入后台状态,只需要在info.plist中加入UIApplicationExitsOnSuspend。

app就会在home键按下后,立即终结,终结前app会收到  applicationWillTerminate: 。在这个函数中可以做数据保存,同样的该函数最多只能执行5s。

posted on 2012-01-07 21:55  日虾夜饺  阅读(604)  评论(0编辑  收藏  举报

导航