允许后台进程时无法在 iOS 中获取 Force Quit 事件,怎么办?

Posted

技术标签:

【中文标题】允许后台进程时无法在 iOS 中获取 Force Quit 事件,怎么办?【英文标题】:Unable to get Force Quit event in iOS when background process is allowed, How to do? 【发布时间】:2013-06-28 08:31:11 【问题描述】:

ios 3.2 之后,Apple 允许我们继续在后台模式下运行我们的应用程序。使用相同的概念,在我的应用程序中,我实现了在后台模式下运行的下载功能。

问题在于,每当我按照 Apple 规范强制手动退出我的应用程序时(双击主页按钮 > 长按应用程序图标 > 点按应用程序的十字按钮)。我无法在代码中跟踪该事件,因此无法跟踪我的下载数据。

因此,我的数据正在丢失。那么如何在它被强制退出之前跟踪它并跟踪/保存数据。

参考:AppDelegate Protocol

【问题讨论】:

【参考方案1】:

据我所知,没有办法处理该事件,因为它会立即终止整个进程。

您需要定期保存数据,或者保持原样。用户正在杀死应用程序,应该意识到他正在杀死应用程序

【讨论】:

【参考方案2】:

在收到每个“数据块”并将其写入磁盘时对其进行跟踪。这样您就不必依赖关闭事件


这就是 ASI 和 AFN 的做法,而且您也可以直接使用 NSURLConnection 手动完成。

在启动时,查看文件中是否已有数据以及有多少数据。 ASI 和 AFN 再次让这变得非常简单!

【讨论】:

以上是关于允许后台进程时无法在 iOS 中获取 Force Quit 事件,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

进程有超过允许时间 iOS 的活动断言

通过在 iOS 中摇动手机在后台启动进程

iOS 必知必会 - APNs篇

无法在 iOS 11 上获取后台位置更新

Android10系统定制配置fridaserver后台进程(Moto Z2 Force机型-libqsap_sdk问题)

安卓系统的开发人员选项中的“不保留活动”,和“后台进程限制”中的“不允许后台进程”或“只允许一个后