在我的应用程序委托(delegate)的applicationDidBecomeActive:
中,我检查用户登录状态的有效性,如果登录失败,则会抛出一个登录页面。该检查涉及一个网络调用,我担心的是,在网络状况不佳的情况下,它可能会阻塞主UI,从而有效地使应用程序挂起。
从计时角度来看,当应用程序启动时会发生什么? applicationDidBecomeActive:
的内容是否在主线程上阻塞/运行?我应该异步进行此网络通话吗(例如使用GCD)?
最佳答案
像所有UIKit方法一样,在主线程上调用applicationDidBecomeActive
方法。您必须始终确保在后台线程中执行任何长时间运行的进程或网络访问。
使用NSURLConnection
的异步形式或使用GCD对后台队列执行操作。
关于ios - applicationDidBecomeActive : block the main thread?是否,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15328560/