Intent란? (안드로이드)
Intent(인텐트) 는 안드로이드에서 컴포넌트 간(액티비티, 서비스, 브로드캐스트 리시버 등)의
데이터 전달 및 실행을 담당하는 메시징 객체입니다.
1. Intent의 역할
✔ 컴포넌트 간 통신
✔ 새로운 액티비티(Activity) 또는 서비스(Service) 실행
✔ 데이터 전달 (문자열, 숫자, 객체 등)
✔ 시스템 이벤트 전달 (예: 충전 연결, 네트워크 변경 등)
2. Intent의 종류
① 명시적(Explicit) Intent
- 정확한 대상 컴포넌트를 지정하여 실행하는 방식.
- 일반적으로 앱 내에서 다른 액티비티(Activity)나 서비스(Service)를 실행할 때 사용.
🔹 사용 예시: Activity 간 이동
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(intent);
➡ NextActivity가 실행됨.
🔹 사용 예시: 데이터 전달
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.putExtra("username", "JohnDoe"); // 데이터 전달
startActivity(intent);
➡ NextActivity에서 데이터 받기:
String username = getIntent().getStringExtra("username");
🔹 사용 예시: 서비스 실행
Intent intent = new Intent(this, MyService.class);
startService(intent);
② 암시적(Implicit) Intent
- 특정 컴포넌트를 직접 지정하지 않고, 안드로이드 시스템이 적절한 앱을 선택하여 실행.
- 보통 웹 브라우저 열기, 전화 걸기, 지도 보기, 갤러리 열기 등에 사용됨.
🔹 사용 예시: 웹사이트 열기
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.google.com"));
startActivity(intent);
🔹 사용 예시: 전화 걸기
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:01012345678"));
startActivity(intent);
🔹 사용 예시: 지도 열기
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:37.7749,-122.4194"));
startActivity(intent);
🔹 사용 예시: 사진 선택 (갤러리 열기)
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, 1);
3. Intent 사용 시 주요 메서드
startActivity(intent) | 새로운 액티비티 실행 |
startActivityForResult(intent, requestCode) | 결과를 받기 위한 액티비티 실행 |
startService(intent) | 서비스 시작 |
bindService(intent, connection, flags) | 서비스 바인딩 |
sendBroadcast(intent) | 브로드캐스트 메시지 전송 |
4. Intent 사용 예제
📌 예제 1: Activity 간 이동 및 데이터 전달
✅ MainActivity에서 SecondActivity로 이동하면서 데이터 전달
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("message", "Hello from MainActivity!");
startActivity(intent);
✅ SecondActivity에서 데이터 받기
String message = getIntent().getStringExtra("message");
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
📌 예제 2: 카메라 앱 실행하여 사진 찍기
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 100);
5. 정리
✅ Intent는 안드로이드에서 컴포넌트 간 데이터를 전달하고 실행을 제어하는 객체
✅ 명시적 Intent → 같은 앱 내에서 특정 컴포넌트를 실행할 때 사용
✅ 암시적 Intent → 시스템 또는 다른 앱을 호출할 때 사용 (웹 브라우저, 전화, 지도 등)
✅ 데이터 전달 가능 → putExtra()를 사용하여 데이터를 전달하고, getIntent()로 받음
💡 핵심: Intent는 안드로이드 앱에서 컴포넌트 간 통신을 가능하게 하는 필수적인 개념!
'잡동사니 > GPT가 알려주는' 카테고리의 다른 글
[GPT가 알려주는] #와 $의 차이 (0) | 2025.04.04 |
---|---|
[GPT가 알려주는] source랑 ./실행의 차이 (0) | 2025.04.04 |
[GPT가 알려주는 C] char[]와 char* (0) | 2025.04.04 |
[GPT가 알려주는] GIT 상황극 (0) | 2025.04.04 |
[GPT가 알려주는] GIT (0) | 2025.04.04 |