우선.. 펴미션 요청이 필요한 액티비티마다 일일히 onRequestPermissionsResult를 넣고싶지가 않아서
퍼미션 관련 로직들을 하나의 클래스로 묶어서 사용하려고 합니다.
onRequestPermissionsResult를 받는부분이 최소한 하나는 있어야 하니까, 액티비티도 하나 필요하구요.
그래서, 아래와 같이 구조를 짰습니다.
초기. 퍼미션이 필요한 액티비티에서 PermissionManager인스턴스 생성
1. PermissionManager에서 퍼미션 요청 ->
2. PermissionActivity에 요청할 퍼미션을 번들로 넘김 ->
3. PermissionActivity 시작 ->
4. onCreate에서 번들로 넘어온 퍼미션 값들로 ActivityCompat.requestPermissions 호출 ->
5. onRequestPermissionsResult로 결과 받아옴, 기타 거부등의 처리
6. onRequestPermissionsResult의 결과를 PermissionManager에 전달
이런식으로 구조를 짜는데, 문제가.. 6번인 onRequestPermissionsResult의 결과값을 PermissionManager에서 받아올 방법이 전무하네요.
우선 PermissionActivity 자체도 PermissionManager의 인스턴스를 생성한 액티비티가 호출하는 구조라
PermissionActivity 의 결과를 받는건 PermissionManager를 생성한 액티비티지, PermissionManager에서 받는 방법이 없더라구요..
뭐 서비스나, 브로드캐스트 리시버 같은걸 이용해볼까도 헀지만, 이것도 방법이 마땅치 않네요.
좋은 방법이 없을까요?
PermissionManager는 아무 클래스도 상속받지 않은 클래스입니다.