What is Intent?
안드로이드 컴포넌트 4개
-> Activity, Service, Broadcast Recevier, Content Provider
Intent는 컴포넌트 간 정보를 전달하는 역할을 한다.
Intent에는 명시적Intent와 암시적Intent가 있다.
명시적 Intent
val intent = Intent(this, NextActivity::class.java)
startActivity(intent)
암시적 Intent
startActivity(Intent(Intent.ACTION_CALL,uri))
-> chooser를 통해 컴포넌트를 선택할 수 있음
Intent의 구성요소
-> 암시적 intent의 판단 조건은 action, data, category이다.
-> 명시적 intent를 할 때는 component name을 사용한다.
Intent의 Action에는
-> ACTION_MAIN, ACTION_VIEW, ACTION_DEFAULT, ACTION_EDIT, ACTION_DELETE, ACTION_DIAL, ACTION_CALL, ACTION_SEARCH...
=> ACTION_CALL은 바로 전화를 건다. - Permission이 필요하다.
Intent의 브로드캐스트 액션 : 브로드캐스트 리시버가 받을 수 있는 Action
-> registerReceiver(BroadcastReceiver, IntentFilter) 메소드의 intentFilter에 정의하거나 AndroidManifest.xml의 태그에 정의할 수 있음
ex) ACTION_TIME_TICK, ACTION_TIME_CHANGED, ACTION_TIMEZONE_CHANGED, ACTION_BOOT_COMPLETED...
Intent Filter