Android 6.0 运行中用户手动去设置界面取消该app的某个权限,或者在权限设置界面取消然后再重新手动给与该权限,再次进入该app,其实里面的数据和对象已经被回收了但是有没有崩溃,界面还在。没有走onDestroy,onPause等函数,如果是 Fragment 会直接被回收,但是又没有走 onDestroyView , onDestroy ,onDetach 这些周期函数,宿主的周期函数也没有被执行,这个问题该怎么解决?有人可能会说在主活动onResume监听权限改变,但是只要上面第一句执行了,后面的都没用,曾经考虑过动态监听权限改变,然后得到结果后重启应用,这个目前是作为备用方案,希望可以在这里看看大家有没有更简单粗暴的好办法
私の質問はあなたの回答の範囲内ではありませんでした。プロジェクトを再構築し、この問題を完全に解決しました。
アクセス許可を変更すると、通常は OnStop が呼び出されます。インターフェイスに戻ると、少なくとも onPause が呼び出されるので、onResume で確認してください。 。確信が持てない場合は、データを取得するたびに (つまり、権限が実際に使用されている場所を) 再確認できます。
現在考えられている方法:
1. アノテーションを記述し、パーミッションを必要とするいくつかのメソッドにアノテーションを追加し、パーミッションを自動的に検出します
2. パーミッションが使用されている場所を毎回検出します
これらの権限が常に必要な場合は、baseActivity の Resume でチェックインしてください
こんにちは、この問題はどうやって解決しましたか?私も最近この問題に悩んでいました。