搜尋

首頁  >  問答  >  主體

Android 6.0 运行中用户手动去设置界面取消该app的某个权限,app该怎么处理这块的逻辑?

Android 6.0 运行中用户手动去设置界面取消该app的某个权限,或者在权限设置界面取消然后再重新手动给与该权限,再次进入该app,其实里面的数据和对象已经被回收了但是有没有崩溃,界面还在。没有走onDestroy,onPause等函数,如果是 Fragment 会直接被回收,但是又没有走 onDestroyView , onDestroy ,onDetach 这些周期函数,宿主的周期函数也没有被执行,这个问题该怎么解决?有人可能会说在主活动onResume监听权限改变,但是只要上面第一句执行了,后面的都没用,曾经考虑过动态监听权限改变,然后得到结果后重启应用,这个目前是作为备用方案,希望可以在这里看看大家有没有更简单粗暴的好办法

怪我咯怪我咯2772 天前667

全部回覆(5)我來回復

  • 怪我咯

    怪我咯2017-04-17 18:02:53

    謝謝各位的解答,我的問題都不屬於你們回答的範圍,我已經把專案重構,徹底解決了這個問題!

    回覆
    0
  • 阿神

    阿神2017-04-17 18:02:53

    你去修改權限的時候你的activity必然會切換出去吧,onStop一般都會調用,至少onPause也應該會走,再回到你的界面的時候onResume會被調用,所以放在onResume裡檢查就可以了。如果你不放心,你還可以在每次取得資料(就是實際用到權限的地方)的時候再偵測一次。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 18:02:53

    目前想到的辦法:
    1.寫一個註解,在某些需要權限的方法加上註解,自動檢測權限的情況
    2.那就是用到權限的地方都檢測每次都檢測

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 18:02:53

    如果一直需要這些權限,baseActivity的onResume 裡統一檢查

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 18:02:53

    你好,請問你是怎麼解決這個問題的,我最近也在被這個問題困擾

    回覆
    0
  • 取消回覆