ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [안드로이드] 명시적/암시적 인텐트
    카테고리 없음 2024. 3. 19. 20:58

    인텐트란?

    메시지 객체이고, 이것을 사용하여 다른 앱으로 작업을 요청하여 결과를 전달받을 수 있다.

    인텐트 종류에는 두가지가 있는데 명시적 인텐트암시적 인텐트가 있다.


    명시적 인텐트

    특정한 컴포넌트를 직접적으로 호출할 때 사용된다.

    (새로운 액티비티를 실행하기 위해 사용된다.)

    class MainActivity : AppCompactActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
        	super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            // TestActivity를 지정하여 액티비티를 띄운다.
        	val intent = Intent(this, TestActivity::class.java)
        	startActivity(intent)
        }
    }
    
    class TestActivity() : AppCompactActivity() { ... }

    암시적 인텐트

    특정한 컴포넌트를 명시하지 않고 일반적인 작업을 설정하여 실행하기 위해 사용된다.

    안드로이드에서 해당 인텐트를 처리할 수 있는 모든 앱을 검색하여 찾아 실행시킨다.

    (본인의 앱을 다른 앱에서 실행되게 하고 싶다면 인텐트 필터를 걸어서 다른 앱에게 알릴 수 있다.)

    (MainActivity가 ACTION_DIAL(암시적 인텐트)를 수신하도록 하면 다른 앱에서 전화 기능이 필요할 때 본인의 앱이 뜰 것이다.)

    class MainActivity : AppCompactActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
        	super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            // 전화번호 입력 창을 실행시킨다.
        	val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:114"))
        	startActivity(intent)
        }
    }
Designed by Tistory.