【问题标题】:Behaviour of threads when entering background in iOS multitasking在 iOS 多任务处理中进入后台时线程的行为
【发布时间】:2011-06-13 07:56:31
【问题描述】:

在运行一些测试时,我注意到当应用程序(没有后台权限,即 voip、gps 等)进入后台状态时,当时运行的任何后台线程(或并发 NSOperations)似乎都已暂停(未终止),当应用进入前台时它们会继续。

我无法在任何地方看到此线程行为的记录。有谁知道这种行为是否已定义并且可以依赖?

如果重新打开应用程序时线程可以安全地继续,则不必取消任务或参与任务完成将很有用。尤其是复杂的操作。

任何信息都会很棒。谢谢!

【问题讨论】:

    标签: ios multitasking


    【解决方案1】:

    当一个非多任务应用程序退出时,它会冻结在当前状态并留在内存中。但是,如果内存不足,用户从多任务栏关闭它,或者设备关闭,应用程序将在没有警告的情况下终止。您可以相信从后台返回的应用程序会像以前一样继续运行,但您应该在进入后台时保存状态,以防应用程序关闭。

    【讨论】:

    • 我知道当前状态(即内存)是持久的,但是我不知道各种进程/线程本身保持在相同的状态并且执行只是停止了。
    • 一旦再次进入前台,应用程序及其线程的状态就会保持并继续。唯一要知道的是,您不能保证在后台线程执行开始之前会进行任何委托调用(即-applicationWillEnterForeground:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多