ios app 加载完启动图时黑屏一秒钟

来源:互联网 发布:网站在线下订单源码 编辑:程序博客网 时间:2024/05/14 19:38

我在appdelegate中加载首页前有个网络请求,是AFN的get请求,这个时候启动图加载完只要执行网络请求的时候就会黑屏一会才进入首页。分析了一下是网络请求阻塞了主线程,导致首页没加载出来黑屏了。怎么都觉得异步的不行呀,我觉得同步的还行,只是没有试。奇葩的需求,为什么要在appdelegate中进行网络请求呢?

首先试错:

问题出现可能性。

1.首页的多了异步请求跟初始化的请求不知道谁最先执行(切断首页的一切请求,还是不行,取掉首页的列表的创建可以避免黑屏,带入歧途,用                         

 代码创建所有视图,试图从列表的创建解决问题,未果)。                  

  2.启动图加载时的初始化URL的请求在主线程,网络请求阻塞了主线程的加载,未能加载出首页(可能性最大),试图把网络请求放在子线程在主                               线程加载界面,失败。又把请求放在一个队列当中,控制队列的执行顺序,又失败。原因不详,估计是AFN的异步请求始终在主线程中进行,只                                  有当手机内存吃紧的时候才给分配子线程,没法测,也不科学。


 解决办法:                          

用嘴笨的办法解决。就是把初始化放在首页,保证在其他请求的前面执行,有个缺点就是太多的异步请求完了都得刷新界面,怎么办,(把其他                                 请求放在初始化请求的成功里面执行,并通过再主线程中刷新界面来保证多个异步请求会在子线程中进行,开启主线程只能来刷新界面,始终不给                               其他请求枪战主线程资源提供机会)。结果可想而知。


  这个过程告诉我,只要不是杀头的需求,经过时间的想办法,一定能解决。


原创粉丝点击