액티비티 간 데이터 주고받기

·2021년 10월 15일
1

안드로이드

목록 보기
10/17

실행되는 액티비티에 데이터 전달하기

액티비티 간에는 서로 데이터를 주고 받아야하는 경우가 많다
ex) 카톡에서 특정 동영상이나 사진을 첨부한다.

startActivity 함수:

  1. 액티비티 B를 실행
  2. 액티비티 B로 인텐트를 전달함
  3. 액티비티 B에서 getIntent 함수를 호출하고, 인텐트에 포함된 extra data를 수신

startActivitiyForResult 함수:

startActivity 함수의 동작과 동일
단, 액티비티 B에서 A로 데이터를 전달하는 기능이 추가됨

액티비티 B는 setResult 함수를 통해 자신을 호출한 액티비티 A에 전달할 인텐트를 설정함
이후 B가 종료되면 A의 onActivityResult 함수를 재정의하여 인텐트를 전달 받는다


finish 이후 이전 액티비티로 돌아가서 intent를 전달하게 됨

이후 A액티비티에서 결과가 정상적으로 받아진 것을 확인하고 인텐트를 꺼내 사용한다.


RESULT_FIRST_USER : 사용자가 정의한 상수를 사용하고 싶을 때, 해당 상수를 시작으로 1씩 더해서 사용한다.

액티비티 A에서, 사진 파일을 선택할 수 있는 액티비티 B와 동영상 파일을 선택할 수 있는 액팁비티 C를 실행할 수 있다고 가정하자.
B, C 모두 실행결과를 A의 onActivityResult로 전달한다. B, C 중 누가 결과를 보냈을까?
→ Result Code로 구분하면 된다. ex) REQUEST_PIC_FILE_URL, REQUSET_VIDEO_FILE_URL)
→ 이 값을 통해서 어떤 액티비티의 결과인지 확인한다.

profile

0개의 댓글