inflearn logo
강의

講義

知識共有

[2023コトリン講義無料提供]基礎から収益創出まで、AndroidプログラミングA-Z

メインアクティビティ - 権限機能の追加 (2)

Permission Request Code 와 requestCode가 같은지 if문에서 확인하는 이유가 무엇인가요?

467

atg0614

投稿した質問数 1

0

이 부분 if문에 있는 조건이 잘 이해가 가지않습니다.

함수를 보낼 때 인자로 값을 보내고,

매개변수로 받아온 값을 그대로 다시 검사하는 이유가 무엇인가요?

함수가 실행될 때 값이 변조되거나 하는 일이 생기나요...?

또한,

여기서 @MainActivity 어노테이션을 쓰는 이유도 궁금합니다 ...!!

 

강의 너무 잘 듣고 있어요

(정가로 구매했는데 몇일전부터 할인해서 광광 우는중 ㅎㅎㅎ ㅠㅠㅠㅠ)

kotlin android 클론코딩

回答 1

0

Code With Joyce

안녕하세요, atg0614님!

질문해 주신 내용 "Permission Request Code 와 requestCode가 같은지 if문에서 확인하는 이유가 무엇인가요? " 에 대하여 답변드리겠습니다.

requestCode는 onRequestPermissionResult, onActivityResult 와 같이 다른 액티비티(를 비롯한 다양한 인텐트)를 확인하고 다시 돌아오는 경우에 쓰입니다.

그리고 액티비티에 하나만 구현하기 때문에 MainActivity A 에서 Activity B 로 갔다가 돌아오는지, Activity C로 갔다가 돌아오는지 확인하기 위함에 있습니다.

아래 예시처럼 requestCode를 사용하면 카메라를 갔다왔는지, 전화번호부에 갔다왔는지를 확인할 수가 있습니다! 퍼미션의 종류에도 여러가지가 있으니 각각 다른 requestCode를 준다면, requestCode에 따라 실행방법을 분리할 수도 있겠죠?


@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == Activity.RESULT_CANCELED) {
            // code to handle cancelled state
        }
        else if (requestCode == CAMERA_REQUEST) {
            // code to handle data from CAMERA_REQUEST
        }
        else if (requestCode == CONTACT_VIEW) {
            // code to handle data from CONTACT_VIEW
        }
    }

답변이 도움이 되기를 바라겠습니다.

 

(추가로 할인 기간에 못 사셨다니 마음이 아픕니다 ㅜㅜ 완강하시고 code.with.joyce@gmail.com 으로 메일 하나 주세요 ^^)

0

atg0614

선생님 정말 빠른 답변 너무 감사드립니다.

단번에 이해했습니다.

onRequestPermissionResult, onActivityResult

는 하나만 구현해놓고 RequestCode에 따라서 다른 기능을 하게 만들어주는군요..

감사합니다.

첫 강의를 이 것으로 시작해서 모르는 부분이 나올 때 마다 구글링 열심히 해가면서 배워가고 있습니다. 좋은 강의 감사드립니다.

 

혹시 질문의 마지막에 있던 this에 붙은 @MainActivity 어노테이션에 대한 답변도 가능할까요 ?

0

Code With Joyce

마지막 질문을 깜빡했네요 ^^

@MainActivity 와 같은 어노테이션을 붙여주는 이유는 바로 this가 위치해 있는 곳에 따라 참조하는 값이 달라질 수도 있기 때문입니다. let,apply,with 과 같은 람다식이나 오브젝트 안에서 this 는 그 자신을 가리킬 수 있습니다.

아래 예시를 보고 한 번 이해해 보세요.

class MainActivity {
    fun onCreate() {
        val list = listOf("사과", "배", "바나나")
        with (list) {
            println(this)              // >>> ["사과", "배", "바나나"]
            println(this@MainActivity) // >>> MainActivity@2a54aff7
        }
    }
}

 

안드로이드스튜디오 버전이 어떻게 되는지요?

0

106

1

스크래치 파일 Run 안되는 오류 발생

0

134

1

Git에서 다운받은 폴더가 안열리는 분들

0

136

1

TodoDao Interface 문의

0

78

1

kotlin 버전과 ksp 버전 꼭 맞추셔야 해요!!

0

446

1

아름다운 joyce님께.. runonuithread 문의

0

139

0

viewBinding 관련 질문입니다.

0

206

3

0:30초 질문입니다.

0

179

1

Locationmanager로 타입캐스팅 실패 문의

0

140

1

Todo리스트 dao 구성 시 todo 질문

0

140

1

룸 데이터베이스 구성 시 dao 에러 문의

0

170

1

버튼모양 질문 소스코드 첨부

0

146

1

레이아웃 구성할떄 저는 버튼모양이 원으로 나와요

0

169

1

싱글톤 패턴 구현중 코드가 강의와 일치하지 않습니다.

0

156

1

MainActivity 파일안에 setContencView가 없습니다..

0

201

1

room database 설치 질문

0

174

1

kts로 공부하는 학생도 있는데 갑자기 설명도 없이 kt로 설명하면..

0

313

3

mutable과 var의 차이점

0

201

1

안드로이드 스튜디오 스크래치 파일

0

277

1

추가링크는 어디에 있을까요?

0

285

1

대시보드 설정 마지막 단계 Google Play에 앱 게시

0

675

2

geoCoder.getFromLocation 에러

0

552

2

apirequest.io 로딩 현상 & 사이트 이상함

0

449

1

PrimaryKey를 Nullable하게 만드는 이유

0

267

1