【问题标题】:applicationDidEnterBackground: is not being calledapplicationDidEnterBackground:没有被调用
【发布时间】:2012-05-22 18:42:07
【问题描述】:

我正在为 iPhone 创建一个视频编辑应用程序。

当用户设置视频编辑然后开始渲染时,显然需要时间。当用户按下主页按钮时,应用程序被最小化,但渲染仍在继续,除非渲染过程完成,否则不会调用applicationDidEnterBackground:

【问题讨论】:

  • 试试 applicationWillResignActive
  • 我认为它们都在同一个线程上。并且只有在 cpu 空闲时间很短的情况下才会调用回调..
  • 我也尝试过 applicationWillResignActive 但它也没有被调用...

标签: iphone objective-c background-process video-editing


【解决方案1】:

你能发布执行渲染的代码吗?

如果这是一个阻塞调用,需要花费大量时间才能完成,并且您在主运行循环中执行此操作,那么您正在阻塞运行循环。您的渲染代码需要在调用 applicationDidEnterBackground 之前完成,如果这花费的时间太长,iOS 将直接终止您的应用程序。 IT 还会冻结 UI,这是您绝对不想要的。

最可能的解决方案是将渲染代码移至后台线程,但这实际上取决于您在做什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2020-12-17
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多