【问题标题】:Send App to Background process将应用程序发送到后台进程
【发布时间】:2012-04-02 02:25:25
【问题描述】:

我们不想使用 exit(0) 来关闭应用程序,但是我们希望允许应用程序以编程方式进入后台并处理离开,每个用户都允许此操作。有没有办法以编程方式将应用程序发送到后台而不退出?模拟点击主页按钮?

提前致谢!

【问题讨论】:

    标签: iphone ios xcode ipad exit


    【解决方案1】:

    有没有办法以编程方式将应用程序发送到后台而不退出?

    没有。用户应该控制应用程序——应用程序不应自行移至后台(或退出)。

    【讨论】:

    • 但是,我在很多地方读到过,应用程序可能会使用 exit(0) 被拒绝。我们不想要这个。然而,我们确实希望让用户能够设置一个选项,允许应用程序在处理和执行其他操作时简单地最小化自身。我们的后台进程运行得非常好,但是,我们可以选择自动执行此操作。我们不想用 exit(0) 打破这个
    • 你想做什么和你能够做什么是两件不同的事情,恐怕。最好的解决方案是让您的应用程序在执行您正在谈论的任何处理时对用户仍然有用。如果这不可能,让用户知道应用程序在做什么,如果他们愿意,让他们点击主页按钮。不要调用 exit()——让用户保持控制。
    【解决方案2】:

    不可能。主页按钮点击进入私有GSEvents 框架。是exit(),不幸的是没有。

    【讨论】:

    • 但是,我在很多地方读到过,应用程序可能会使用 exit(0) 被拒绝。我们不想要这个。然而,我们确实希望让用户能够设置一个选项,允许应用程序在处理和执行其他操作时简单地最小化自身。我们的后台进程运行得非常好,但是,我们可以选择自动执行此操作。我们不想用 exit(0) 打破这个
    • 讽刺的是,很多 Zinga 应用都使用了退出功能
    • 但这会导致后台处理无法正常工作,因为应用程序确实终止了,不干净,但确实如此。我们需要后台任务来完成。
    • 为什么不直接显示加载提醒并要求他们在加载时间过长时关闭应用?
    • 不会那么做作。只需提醒用户需要多长时间,轻轻地建议他们关闭应用程序,然后通过提醒他们回来时工作将完成来完成交易。
    【解决方案3】:

    以下代码可用于以编程方式将 iOS 应用程序发送到后台而无需退出

    DispatchQueue.main.async {
            UIApplication.shared.performSelector(inBackground:NSSelectorFromString("suspend"), with: nil)
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-24
      • 2011-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      相关资源
      最近更新 更多