[android] Intent

dyke·2022년 8월 1일

android

목록 보기
2/5
post-thumbnail

Intent

  • 수행할 작업에 대한 추상적인 설명.
  • 보통 startActivity와 함께 시작하여 관심있는 구성 요소 Activity로 보내거나 배경과 통신하는데 사용

명시적 인텐트

  • 인텐트를 충족하는 애플리케이션이 무엇인지 지정
  • 대상 앱의 패키지 이름 또는 완전히 자격을 갖춘 구성 요소 클래스 이름을 제공
  • 예시

java

Intent intent = new Intent(this, DownloadService.class);
//첫번째 인자는 현재 위치
//두번째 인자는 이동하고자 하는 위치
intent.putExtra("이름", "홍길동")
//첫번째 인자는 키, 두번째 인자는 값

startActivity(intent);
//액티비티 실행하면서 intent값 넘기기

//받는 액티비티에서 이 코드로 받기
Intent intent = getIntent();

kotlin

val intent = Intent(this, MainViewModel::class.java).apply {
      putExtra("이름", "홍길동")
}
//첫번째 인자는 현재 위치
//두번째 인자는 이동하고자 하는 위치
//첫번째 인자는 키, 두번째 인자는 값

startActivity(intent)
//액티비티 실행하면서 intent값 넘기기

//받는 액티비티에서 이 코드로 받기
val intent = intent

암시적 인텐트

  • 애플리케이션을 지정하지 않고, 그 대신 수행할 일반적인 작업을 선언하여 다른 앱의 구성 요소가 이를 처리.
  • 예시

java

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND); //전송 작업
intent.putExtra(Intent.EXTRA_TEXT, textMessage); //전송할 텍스트 데이터
intent.setType("text/plain"); //타입은 텍스트 데이터

//액티비티가 실행된 상태면 start
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(sendIntent);
}

kotlin

val intent = Intent().apply {
    action = Intent.ACTION_SEND //전송 작업
    putExtra(Intent.EXTRA_TEXT, textMessage) //전송할 텍스트 데이터
    type = "text/plain" //타입은 텍스트 데이터
}

//액티비티가 실행된 상태면 start
if (intent.resolveActivity(packageManager) != null) {
    startActivity(sendIntent)
}

참고한 문서
https://developer.android.com/guide/components/intents-filters#ExampleExplicit

profile
web full-stack 지향하는 코린이

0개의 댓글