[Android] 안드로이드의 4대 컴포넌트
- 💡 특징
- 1) 액티비티 (Activity)
- 2) 서비스 (Service)
- 3) 브로드캐스트 리시버 (Broadcast Receiver)
- 4) 콘텐트 프로바이더 (Content Provider)
컴포넌트는 구성요소라는 뜻이다.
안드로이드 4대 컴포넌트는 안드로이드를 구성하는데 필요한 4가지 요소라는 뜻이다.
💡 특징
- 각 컴포넌트는 독립적으로 존재한다.
- 각 컴포넌트는 고유의 기능을 수행한다.
- 각 컴포넌트는 인텐트를 통해서 서로 상호작용한다.
1) 액티비티 (Activity)
- 사용자 인터페이스(UI) 화면을 나타내며, 앱의 사용자 상호작용을 담당한다.
- 다른 액티비티로 전환하거나 시스템 이벤트에 응답할 수 있다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 액티비티 초기화 및 UI 설정
}
}
2) 서비스 (Service)
- 백그라운드에서 실행되는 비주얼 UI 없는 컴포넌트이다.
- 오랜 시간 동안 실행되거나 백그라운드에서 작업을 수행할 수 있다.
class MyService : Service() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// 서비스가 시작될 때 실행되는 코드
return START_STICKY // 서비스가 강제로 종료되었을 때 다시 시작
}
override fun onBind(intent: Intent?): IBinder? {
return null
}
}
3) 브로드캐스트 리시버 (Broadcast Receiver)
- 시스템 또는 앱에서 발생하는 브로드캐스트 메시지를 수신하고 처리한다.
- 예를 들어 배터리 부족, 네트워크 변경 등의 이벤트를 감지할 수 있다.
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val action: String = intent?.action ?: return
when (action) {
Intent.ACTION_POWER_CONNECTED -> {
// 전원 연결 이벤트 처리
}
Intent.ACTION_POWER_DISCONNECTED -> {
// 전원 연결 해제 이벤트 처리
}
}
}
}
4) 콘텐트 프로바이더 (Content Provider)
- 앱 간 데이터를 공유하고, 데이터베이스에 대한 접근을 제공하는 인터페이스이다.
- 주로 데이터를 관리하고 다른 앱이 이 데이터에 접근할 수 있도록 한다.
class MyContentProvider : ContentProvider() {
override fun onCreate(): Boolean {
// 콘텐트 프로바이더 초기화
return true
}
override fun query(
uri: Uri,
projection: Array<out String>?,
selection: String?,
selectionArgs: Array<out String>?,
sortOrder: String?
): Cursor? {
// 데이터베이스에서 쿼리 수행
return null
}
override fun insert(uri: Uri, values: ContentValues?): Uri? {
// 데이터베이스에 데이터 삽입
return null
}
// 나머지 메서드들도 오버라이드 해야 합니다.
}