【问题标题】:iOS applicationWillEnterForeground not called and black screen while background task is running后台任务运行时未调用 iOS applicationWillEnterForeground 和黑屏
【发布时间】:2012-11-16 20:01:00
【问题描述】:

当用户暂停我的应用程序时,我正在使用后台任务来完成一些操作。 这工作正常,但我只是注意到,如果用户在后台任务完成之前重新激活应用程序,屏幕将保持黑色并且 applicationWillEnterForeground: 永远不会被调用。

一旦后台任务完成,一切都会再次正常并调用 applicationWillEnterForeground,但是有没有办法让应用程序在任务运行时重新激活?

我所能找到的就是让后台任务不断检查剩余时间,并注意当应用程序重新激活时,剩余时间会变得非常高。然后它可以自行结束并出现应用程序,但这仍然意味着应用程序黑屏半秒左右。

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

    快速提问。你在使用 beginBackgroundTaskWithExpirationHandler 吗?

    您是否正在异步运行实际工作?如this answer所示? objective c - Proper use of beginBackgroundTaskWithExpirationHandler

    如果没有,您应该在 a-sychornously 上运行您长时间运行的工作,因为否则它将作为您的主 RunLoop 的一部分执行。这确实会阻止您的应用重绘和响应,直到长时间运行的任务完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2018-01-12
      相关资源
      最近更新 更多