2

많은 활동이있는 신청서가 있습니다. 권한을 취소하면 응용 프로그램이 다른 활동에서 충돌합니다. 응용 프로그램을 디버그하고 활동이 중단되는 위치를 잡으려고 시도했지만 응용 프로그램이 종료되면 디버깅을 계속할 수 없습니다. 내 질문은 권한이 전역 적으로 처리 할 수있는 방법이 있습니까? 활동중인 곳에서 허가를 확인할 수 있습니까? onStart? 활동 중 어디에서 허가를 확인해야합니까? 미리 감사드립니다.Android 런타임 권한 - 앱 사용자가 권한을 취소하면 충돌합니다. 어떻게 처리할까요?

+1

필자는 사용자 피드백을 제공하고 다시 묻는 데 필요한 권한을 사용하기 전에'onResume()'을 확인하거나 더 나은 방법으로 검사 할 것입니다. – 323go

+0

"디버깅을 계속할 수 없습니다."- 아니요.하지만 스택 추적을 계속 볼 수는 있습니다. "활동중인 곳에서 허가를 확인할 수 있습니까?" - 언젠가 당신이 추락하기 전에. :-) 더 구체적으로 말하자면, 허락을 필요로하는 일을하기 전에 허가를 확인해야합니다. 단순히 onCreate() 또는 일부 특정 사용자 작업 (예 : 작업 표시 줄 항목 클릭)에 의해 실행되는지 여부는 앱에 따라 다릅니다. – CommonsWare

+0

@CommonsWare 나는 권한이 취소되었을 때 (나는 adb와 수동으로 설정을 시도 했음), 응용 프로그램 프로세스가 종료된다는 것을 관찰했다. 안드로이드 스튜디오 logcat, 아니 예외, 아무것도에 충돌 로그가 없습니다! 아마 이것은 원래 포스터가 "응용 프로그램이 죽을 때까지 계속 디버그 할 수 없다"고 말한 것을 의미합니다. 이 행동을 눈치 채셨습니까? 이 시나리오를 처리하는 방법을 이해해야합니다. 서비스가 종료 될 때 알림을 보내고 알림 패널에서 해당 알림을 제거 할 수있는 방법이 없습니다. – nightlytrails

답변

3

먼저 @CommonsWare 및 @nightlyrails에 감사 드리며 질문을 해결하고 설명을 듣고 싶습니다.

onCreate() 메서드에서 savedInstanceBundle이 null인지 확인합니다. null 인 경우 액티비티가 시작되고 모든 것이 정상입니다. savedInstanceBundle이 null이 아니면 권한을 요청했습니다.

이렇게하면 권한을 취소 할 때마다 응용 프로그램이 손상되는 것을 방지 할 수 있습니다.

한 번 더 팁을 주셔서 감사합니다.

관련 문제