마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

startActivityForResult 후 onActivityResult 를 받지 않을 수 있나요?

–1 추천
문제가 좀 복잡한데요.. ㅠㅠ

Android M 권한 이슈로

권한이 부족하여 권한 설정 화면으로 이동함(with startActivityForResult())

권한 설정 화면에서 on -> off -> on 을 하게 되면

App Process 가 날라가고,

취소로 앱으로 돌아가면 App 이 다시 시작이 됩니다.

(Permission 에서 on -> off 로 설정하면 앱을 restart 시키도록 되어 있음. 정책인듯??)

여기서 문제가

App 이 다시 시작이 되어 app 생명주기대로 돌아가던 중

앱은 application 부터 새로 시작하지만,

이 전에 호출한 startActivityforResult 로 인해서 onActivityResult 가 온다는 겁니다.

process 가 날아갔는데도 말입니다.

그래서 혹시 onCreate 에다가 이전 호출한 startActivityForResult callback을 cancel 한다거나

하는 방법이 있지 않을까해서

문의 드립니다.
까리산적 (350 포인트) 님이 2016년 6월 23일 질문
까리산적님이 2016년 6월 23일 수정

1개의 답변

0 추천

사용자에게 권한 요청 할때 혹시

위 화면으로 요청하시나요???

Activity에 포함된

requestPermissions(strPermissions, REQUEST_PERMISSION);

이 함수를 사용하시면


이 화면이 떠서 on->off->on 이라는 작업을 할수 없을 텐데요;;

Development Guy (70,570 포인트) 님이 2016년 7월 1일 답변
위 화면을 띄우고 있습니다. 아래 팝업이 안드로이드 권장사항인것은 알고 있고 그러면 좀 더 쉬운 방법 될 수도 있지만, 우선 요청 사항이 위 화면으로 이동 하는 컨셉이라.. ㅠㅠ (이 외에도 여러 문제가 있기도 하고..)
그렇다면 그렇게 요청한 곳에 제약사항이므로 정정 해줄것을 요청해보세요.

언젠가 저도 관련해서 공식 레퍼런스 사이트를 찾아본 기억이 나는데
permission의 on->off 동작을 하면 Process가 리셋 된다고 본거 같네요.
왜 그런건지 이유는 나와있지 않았으나 런타임 상태에서 permission을 off 하였을때 그 시점에 permission 획득 유지 하고 있는 인스턴스를 정리 해버리기 위함이 아닐까 생각이 듭니다.
...