onResume無限循環

今天在做權限申請,寫完後,發現點界面上任何東西都無法響應,整個界面處於卡死狀態。

查看Log,onResume和onPause在不停的執行,debug排查發現是因爲請求權限導致的。


由於考慮到權限必須獲得,否則沒法去讀取數據和開啓功能,所以就想着放在onResume裏。

請求權限相當於打開了一個請求權限界面,app會先執行onPause,如果有多個權限申請,

點了允許,生命週期會執行onRequestPermissionsResult onResume,這時會把請求權限代碼又執行一遍,然後再跳到請求權限界面,生命週期又會走onPause onRequestPermissionsResult。這樣在最後一次你點了允許後,開始陷入一個無限循環之中。

onResume 

onPause 

onRequestPermissionsResult 

不停的執行...

知道問題所在,那改起來就方便了,要麼加flag判斷,要麼不在onResume裏執行



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