如果当您点击主页按钮时后台线程正在运行,则会暂停,然后在重新打开应用程序时恢复。我只是希望在按下主页按钮时停止操作,以便在恢复时,用户可以从头开始。做了一些研究后,它看起来像一个简单的bool标志,定期检查是要走的路。我的问题是,之后的部分。我有一些标志部分正在使用UIApplicationWillResignActiveNotification等一些通知,但我的问题是采取什么行动来实际阻止事情。我可以做一个简单的返回来阻止事情,但是这对线程本身有何影响?作为一般问题,如果没有任何内容正在运行,或者它到达代码的末尾,那么该线程是否会自行关闭?或者是否需要某种明确的退出电话?在我的粗略测试中,该线程似乎消失了,但我不确定。
答案 0 :(得分:1)
如果您的入口点返回一个线程,您的线程将关闭。如果您安装了一个runloop,您的线程可能永远不会关闭,具体取决于您的实现。在任何情况下,当应用程序进入后台时,允许主线程完成当前的runloop运行,然后暂停应用程序。所有其他线程也被暂停。一旦你的应用程序返回到前台,或者在某些情况下在后台唤醒,你的线程将恢复工作,直到你结束入口点,暂停它或你的应用程序再次被暂停。
当然,这是一种简化。在某些情况下,即使您提供的入口点返回,也会重用线程。这是线程池,GCD等的情况。在这些情况下,线程可能显示为活动,但实际上它被暂停并且占用的资源很少。