[안드로이드] 부가데이터(putExtra), 플래그(Flag)
부가데이터(putExtra)
: 인텐트에 데이터를 같이 전달 할 수 있는 데이터
- 데이터는 인텐트 안 번들(Bundle)객체에 들어있음
- 데이터를 넣을 때는 putExtra()
데이터를 가져올 때는 get___Extra()
ex) getStringExtra(), getIntExtra(), getBooleanExtra()
플래그(Flag)
: 인텐트에 추가할 수 있는 옵션
[주요 플래그]
- FLAG_ACTIVITY_NEW_TASK
: 액티비티를 관리하는 태스크(TASK) 객체를 새로 만들도록 함
- FLAG_ACTIVITY_SINGLE_TOP
: 동일한 액티비티가 이미 메모리에 만들어져 있다면, 그 액티비티를 재사용 함
- FLAG_ACTIVITY_CLEAR_TOP
: 원하는 액티비티가 이미 메모리에 만들어져 있고 그 후에 다른 액티비티가 만들어진 경우 원하는 액티비티를 찾아
다시 띄울 때 그 이후에 만들어진 다른 액티비티를 없앰
[사용 메소드]
- addFlags()
- setFlags()
[주의할 점]
액티비티를 재사용 할 경우, onCreate()가 호출되지 않아, getIntent()가 호출되지 않음
-> onNewIntent()를 호출해서 인텐트를 전달 받아야 함
[액티비티간 데이터 전달 과정]
1. 액티비티A에서 인텐트 객체를 만들고 putExtra()에 부가데이터를 넣어줌
2. startActivityForResult()를 호출
3. 액티비티B가 실행되고, setResult()를 호출하면서 인텐트 전달
4. finish() 호출되고 액티비티A로 돌아감
5. onActivityResult()가 호출되며 전달받음
[출처]
3-2강
안드로이드 앱 프로그래밍
부스트코스 무료 강의
www.boostcourse.org