前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >App在后台运行的思与做

App在后台运行的思与做

作者头像
Dwyane
发布2018-06-12 15:24:59
1.2K0
发布2018-06-12 15:24:59
举报
文章被收录于专栏:技术总结技术总结
前言:

当一个应用程序在后台运行时,它在屏幕上是不可见的。当用户启动另一个应用程序或返回到主屏幕时,应用程序从前台切换到后台。当然,应用程序也可以在后台启动或恢复,以处理特定的事件。

失活的操作

当一个正在前台的应用程序移动到后台时,UIKit首先调用applicationWillResignActive:方法来禁用应用程序(使App失活)。当App失活,会做出以下几点操作: 1、将用户数据保存到磁盘并关闭任何打开的文件:

应用程序被终止时,始终保存用户数据。同样用户锁住设备时,关闭文件。

2、只做对保存用户数据至关重要的工作:

暂停调度队列和操作队列,不安排任何新的任务执行。

3、让任何正在活跃的计时器失效。(不做处理的话,倒计时退出时为35秒,几秒后回来,还是35秒,不信试试)

4、暂停游戏。

反正,失活会阻止用户与应用程序交互。

切换到后台执行

对于正在移动到后台的前台应用程序,UIKit通过调用applicationDidEnterBackground:的方法来关闭。这个方法表明您的应用程序现在正在后台运行。当切换到后台时,您可以在应用程序挂起之前采取一些额外的步骤: 1、清理你的应用程序的用户界面。

隐藏敏感信息,排除警报和其他临时接口,并准备您的接口以获取其快照。

2、释放系统资源共享。

前台应用程序优先使用共享服务,如相机或系统数据库。当应用程序被挂起时,如果应用程序持有任何共享资源,系统就会终止它。

3、释放图像、媒体文件和临时对象。

移除所有有关大内存的对象(这些对象可以轻松地从磁盘重新创建或重新加载)。系统自动清空系统管理的缓存,包括由NSCache对象和采用NSDiscardableContent协议的对象管理的数据。

applicationDidEnterBackground:调用时的某个时刻,UIKit获取应用程序当前界面的快照。系统在App switcher中使用这个快照图像,当你的应用返回到前台时,它可以替代你的应用的启动屏幕。在app delegate 方法中,通过删除用户界面中的任何敏感数据来保护用户的隐私。当应用程序返回前台时,您可以决定是立即显示数据,还是先请求用户验证。

而在后台,App必须尽可能占用小一点的内存。如果应用程序管理大量数据,可能需要将数据写到磁盘并从内存中删除。例如,如果应用程序操纵图像数据,将数据保存到磁盘,以便释放数据缓冲区。消耗大量内存的后台应用程序比占用少量内存的应用程序先终止。

--文中内容总结归纳于官方文档

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.06.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 失活的操作
  • 切换到后台执行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档