ios app 加載完啓動圖時黑屏一秒鐘

我在appdelegate中加載首頁前有個網絡請求,是AFN的get請求,這個時候啓動圖加載完只要執行網絡請求的時候就會黑屏一會才進入首頁。分析了一下是網絡請求阻塞了主線程,導致首頁沒加載出來黑屏了。怎麼都覺得異步的不行呀,我覺得同步的還行,只是沒有試。奇葩的需求,爲什麼要在appdelegate中進行網絡請求呢?

首先試錯:

問題出現可能性。

1.首頁的多了異步請求跟初始化的請求不知道誰最先執行(切斷首頁的一切請求,還是不行,取掉首頁的列表的創建可以避免黑屏,帶入歧途,用                         

 代碼創建所有視圖,試圖從列表的創建解決問題,未果)。                  

  2.啓動圖加載時的初始化URL的請求在主線程,網絡請求阻塞了主線程的加載,未能加載出首頁(可能性最大),試圖把網絡請求放在子線程在主                               線程加載界面,失敗。又把請求放在一個隊列當中,控制隊列的執行順序,又失敗。原因不詳,估計是AFN的異步請求始終在主線程中進行,只                                  有當手機內存吃緊的時候纔給分配子線程,沒法測,也不科學。


 解決辦法:                          

用嘴笨的辦法解決。就是把初始化放在首頁,保證在其他請求的前面執行,有個缺點就是太多的異步請求完了都得刷新界面,怎麼辦,(把其他                                 請求放在初始化請求的成功裏面執行,並通過再主線程中刷新界面來保證多個異步請求會在子線程中進行,開啓主線程只能來刷新界面,始終不給                               其他請求槍戰主線程資源提供機會)。結果可想而知。


  這個過程告訴我,只要不是殺頭的需求,經過時間的想辦法,一定能解決。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章