當(dāng)應(yīng)用被關(guān)閉權(quán)限后,處于后臺(tái)的應(yīng)用會(huì)關(guān)閉,當(dāng)再次打開(kāi)時(shí),應(yīng)用的application會(huì)再次啟動(dòng),執(zhí)行生命周期的方法,然后啟動(dòng)上次位于activity棧頂?shù)腶ctivity,并且onSaveInstance不為null
處理方法
在基類中,判斷當(dāng)activity的onSaveInstance不為null時(shí),檢查需要的權(quán)限是否被授予,如果發(fā)現(xiàn)必要權(quán)限被關(guān)閉,可以啟動(dòng)開(kāi)屏activity,重新申請(qǐng)權(quán)限
onCreate(saveInstanceState:Bundle){
if(saveInstanceState != null){
//檢查權(quán)限是否正常
if(!hasPermission(...)){
//沒(méi)有權(quán)限
val intent = Intent(this,SplashActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(intent)
}
}
}