Android Studio/App Components

예제

shDev 2026. 3. 2. 20:59

좋아. 네 코드 기준으로 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