Intent의 4대 컴포넌트
- 액티비티(Activity)
- 서비스(Service)
- 브로드캐스트 리시버(Broadcast Receiver)
- 컨텐트 프로바이더(Content Provider)
이 각각의 컴포넌트 간의 통신을 맡고 있는 것이 Intent(인텐트)이다.
Intent 사용법
1. 명시적 Intent
- 화면 전환
// (현재 액티비티, 이동하고 싶은 액티비티)
Intent intent = new Intent(MainActivity.this, SubActivity.class);
// 액티비티 이동
startActivity(intent);
- A activity에서 B activity에 데이터 전달
// (현재 액티비티, 이동하고 싶은 액티비티)
Intent intent = new Intent(MainActivity.this, SubActivity.class);
//데이터 전달
intent.puExtra("별명", 전달하고 싶은 값)
// 액티비티 이동
startActivity(intent);
A 액티비티에서 값을 전달할 때는 별명을 전달한다.
값을 받는 B 액티비티에서 전달 받은 값을 사용할 때는 별명을 사용한다.
- A activity에서 B activity에 데이터 전달하고 B activity 종료시 리턴값을 받을 때
// (현재 액티비티, 이동하고 싶은 액티비티)
Intent intent = new Intent(MainActivity.this, SubActivity.class);
// 액티비티 이동
startActivityForResult(intent,100);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
switch(requestCode){
case 100:
if(data.getExtras() != null){
String str = data.getStirngExtra("resultKey");
result01.setText("startActivityForResult() 리턴값 받기 : " str);
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
2. 암시적 Intent
암시적 인텐트는 Intent의 Action에 따라 해당하는 적합한 애플리케이션의 클래스를 호출한다.
이때 단 하나가 아닌 여러개가 호출 될 수도 있다.
암시적 인텐트는 웹브라우저 호출, 이메일 전송, 전화앱으로의 통화 등이 해당된다.
- 웹브라우저 인텐트 호출
Intent naver = new Intent(Intent.ACTION_VIEW, Uri.parse("https://m.naver.com"));
startActivity(naver);
- 이메일 전달 인텐트 호출
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, "sampleXXX@naver.com");
intent.putExtra(Intent.EXTRA_SUBJECT, "전달할 이메일 제목");
intent.putExtra(Intent.EXTRA_TEXT, "전달할 내용");
startActivity(Intent.createChooser(intent, "Choose Email");
- 전화걸기 인텐트 호출
Intent phone = new Intent(Intent.ACTION_VIEW, Uri.parse("tel : 010 - xxxx - xxxx"));
startActivity(phone);
'🌠Development > Android Studio' 카테고리의 다른 글
[Android Studio] 패키지 구성 확인하기 (0) | 2024.04.12 |
---|---|
[Android Studio] 뷰와 뷰의 속성 (0) | 2024.04.12 |
[Android Studio] 내부 파일 살펴보기 (0) | 2024.04.12 |
[Android Studio] TextView 기본 사용법 (0) | 2024.04.12 |
[Android Studio] 프로젝트 생성 방법 (0) | 2024.04.12 |