좋아. 네 코드 기준으로 Intent 흐름(Explicit vs Implicit), putExtra 차이, **지금 코드에서 주의할 점(userName 스코프/타이밍)**까지 딱 정리해줄게.
1) Explicit Intent (명시적 인텐트) — SecondActivity로 “정확히” 이동
Intent i = new Intent(getApplicationContext(), SecondActivity.class);
i.putExtra("name", userName);
startActivity(i);
- 대상 컴포넌트(SecondActivity)를 정확히 지정하는 방식
- 보통 앱 내부 화면 이동에 사용
- putExtra("name", userName)는 key-value 형태로 데이터 전달
- key "name"은 그냥 문자열이라서 보낸 쪽/받는 쪽이 동일하게 써야 함
✅ SecondActivity에서 받는 방법 예시:
String name = getIntent().getStringExtra("name");
2) Implicit Intent (암시적 인텐트) — “공유할래”만 말하고 앱은 시스템이 찾음
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_SUBJECT, username + " got lucky today");
i.putExtra(Intent.EXTRA_TEXT, "His lucky number is: " + randomNum);
startActivity(Intent.createChooser(i, "Choose a Platform"));
- ACTION_SEND : “공유(전송) 동작을 수행할 앱을 찾아줘”
- setType("text/plain") : “텍스트를 공유할 거야”
- EXTRA_SUBJECT / EXTRA_TEXT :
- 이메일/메신저 앱에 제목/본문을 미리 채우는 표준 키
- createChooser() :
- 처리 가능한 앱 목록을 선택창으로 강제로 띄움
- (안 쓰면 기본 앱으로 바로 갈 수도 있음)
3) putExtra("name", userName) vs putExtra(Intent.EXTRA_TEXT, ...) 차이
✅ "name" 같은 커스텀 키
- **내 앱(SecondActivity)**에서만 쓰는 데이터 전달 키
- 표준이 아니므로 내가 정한 규칙
✅ Intent.EXTRA_* 같은 표준 키
- **다른 앱(이메일/공유 앱)**이 이해할 수 있도록 안드로이드가 정해놓은 키
- 공유/연락/첨부 같은 액션에서 관례적으로 해석됨
'Android Studio > App Components' 카테고리의 다른 글
| Android Manifest (0) | 2026.03.02 |
|---|---|
| Implicit Intent (0) | 2026.03.02 |
| Explicit Intent (0) | 2026.03.02 |
| Android Activity Lifecycle (0) | 2026.03.02 |