当我在 Safari 中将应用程序切换到 Facebook 时,防止 IOS 重新启动应用程序

Posted

技术标签:

【中文标题】当我在 Safari 中将应用程序切换到 Facebook 时,防止 IOS 重新启动应用程序【英文标题】:Prevent IOS to relaunch an app when I switch app to Facebook in safari 【发布时间】:2015-02-06 08:58:57 【问题描述】:

我真的被这个问题困住了,我需要你的帮助!我正在做一个 iPhone 应用程序。当 iPhone 在 safari 中的应用程序和 Facebook 重定向之间交换时,iPhone 会关闭应用程序以节省内存。 我正在做的是我在我的应用程序的后台提供 fb 共享。 当我在后台成功分享其股票并成功返回我的应用程序时。那时我的应用程序没有崩溃。但是当我去 safari 并输入 Facebook 并打开 fb 网站以检查我的共享帖子时,在后台我的应用程序崩溃了。 这个问题出现在带有 ios 7 的 iPhone 中,我在 iOS 8 中没有遇到这个问题。查看这篇文章:Prevent IOS to shutdown an app when it app switch to facebook for login and permission request 但这个解决方案对我不起作用,因为我正在使用 pod 安装 fb 并进行后台共享。

【问题讨论】:

您的代码中显然存在导致应用程序崩溃的错误。这与 Facebook 无关。获取崩溃日志并进行调试 【参考方案1】:

虽然回答这个问题为时已晚,但我相信它可能对其他人有所帮助。 在 “成为负责任的后台应用程序” 部分下的 App Programming Guide for iOS 中,据说 如果您的后台运行应用程序不符合给定要求之一,它将被终止。 您可以熟悉完整的文档。我将引用其中 2 个完全符合您的问题的内容:

做一个负责任的后台应用

在使用 系统 资源和硬件。在后台运行的应用程序需要 为这种差异做好准备并在运行时调整它们的行为 在后台。具体来说,移动到后台的应用程序应该 请遵循以下准则:

不要从您的代码中调用任何 OpenGL ES。 您不得创建 EAGLContext 对象或发出任何 OpenGL ES 绘图命令 在后台运行时的任何类型。使用这些调用会导致 您的应用程序将立即被杀死。应用程序还必须确保任何 之前提交的命令在移动到之前已完成 背景。有关移动时如何处理 OpenGL ES 的信息 往返于后台,请参阅实现多任务感知 OpenGL ES 编程指南中的 OpenGL ES 应用程序。

在后台运行时做最少的工作。 给予后台应用程序的执行时间比 给前台应用程序的时间。花费太多时间的应用 在后台执行可以被系统限制或 终止。

总而言之,当您的应用在 Facebook 分享后移至后台时,可能正在执行上述任务之一。

【讨论】:

以上是关于当我在 Safari 中将应用程序切换到 Facebook 时,防止 IOS 重新启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Emacs 中将文件加载到缓冲区并在启动时切换到缓冲区

Safari 中字体粗细的@font-face 问题

iOS 当我在自己的应用程序中单击关联域时,将启动 safari

( Android ) 切换到新活动时出现黑屏

@font-face Safari 字体 mime 类型警告

通过 Safari 打开时,Firebase 动态链接不会重定向到应用程序