티스토리 뷰
728x90
반응형
SMALL
컴포넌트 간의 상호 작용은 안드로이드 앱의 핵심적인 부분 중 하나입니다. 이 블로그에서는 사용자의 액션에 따른 액티비티와 서비스의 상호 작용, 그리고 브로드캐스트 리시버를 통한 시스템 이벤트 처리에 대해 자세히 알아보겠습니다.
6.1 액티비티(Activity)와 사용자의 상호 작용
6.1.1 액티비티의 역할
- 정의: 액티비티는 사용자 인터페이스를 담당하는 컴포넌트로, 화면을 구성하고 사용자의 입력을 처리합니다.
- 상호 작용 예시: 사용자가 버튼을 클릭하거나 터치할 때, 해당 액티비티는 이벤트를 감지하고 적절한 동작을 수행합니다.
6.1.2 사용자 입력 처리 예시
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myButton: Button = findViewById(R.id.myButton)
myButton.setOnClickListener {
// 버튼 클릭 시 수행할 동작
performButtonClickAction()
}
}
private fun performButtonClickAction() {
// 버튼 클릭에 대한 동작 수행
Toast.makeText(this, "버튼이 클릭되었습니다.", Toast.LENGTH_SHORT).show()
}
}
6.2 서비스(Service)와 액티비티 간의 통신
6.2.1 서비스의 역할
- 정의: 서비스는 백그라운드에서 실행되는 컴포넌트로, 앱이 활성화되지 않은 상태에서도 작업을 수행할 수 있습니다.
- 상호 작용 예시: 액티비티에서 서비스를 시작하거나 바인딩하여 서비스가 백그라운드에서 작업을 수행하도록 유도할 수 있습니다.
6.2.2 서비스와 액티비티 간의 통신 예시
class MyService : Service() {
override fun onBind(intent: Intent): IBinder? {
return null
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// 서비스가 시작될 때 수행할 동작
performServiceAction()
return START_STICKY
}
private fun performServiceAction() {
// 서비스가 수행할 동작 정의
Toast.makeText(this, "서비스가 시작되었습니다.", Toast.LENGTH_SHORT).show()
}
}
6.3 브로드캐스트 리시버를 활용한 시스템 이벤트 처리
6.3.1 브로드캐스트 리시버의 역할
- 정의: 브로드캐스트 리시버는 시스템에서 발생하는 이벤트에 대한 알림을 수신하고, 이에 대응하는 동작을 수행합니다.
- 상호 작용 예시: 장치 부팅이 완료되면 브로드캐스트 리시버가 이를 감지하고 특정 동작을 수행할 수 있습니다.
6.3.2 브로드캐스트 리시버 예시
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// 브로드캐스트 메시지 수신 시 수행할 동작
if (intent?.action == "android.intent.action.BOOT_COMPLETED") {
// 장치 부팅이 완료된 경우 수행할 동작
performBootCompletedAction(context!!)
}
}
private fun performBootCompletedAction(context: Context) {
// 부팅 완료 시 수행할 동작 정의
Toast.makeText(context, "장치 부팅이 완료되었습니다.", Toast.LENGTH_SHORT).show()
}
}
6.4 AndroidManifest.xml에서 설정
<!-- 액티비티 등록 -->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 서비스 등록 -->
<service android:name=".MyService" />
<!-- 브로드캐스트 리시버 등록 -->
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
이 글에서 다뤘던 내용들은 안드로이드 앱 개발에서 중요한 부분이며, 각 컴포넌트 간의 상호 작용을 이해하는 것은 안드로이드 앱의 효과적인 구현을 위해 필수적입니다.
728x90
반응형
LIST
'안드로이드 걸음마' 카테고리의 다른 글
8. 컨텍스트와 앱의 상태 이해하기 (2) | 2024.01.08 |
---|---|
7. 안드로이드 매니페스트 파일 (0) | 2024.01.07 |
5. 레이아웃과 위젯 사용하기 (2) | 2024.01.05 |
4. 안드로이드 스튜디오 소개 (3) | 2024.01.04 |
3. 사용자 인터페이스(UI)의 이해 (1) | 2024.01.03 |
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- RxJava
- 기초
- kotlin
- 사이버보안
- 코틀린
- 안드로이드개발
- coroutine
- 비동기
- 경매
- 생명주기
- 모듈화
- 부동산 경매
- UI스레드
- MVVM패턴
- cipher
- RoomDatabase
- 안드로이드 앱 개발
- Android
- fragment생명주기
- 안드로이드앱개발
- 내부데이터베이스
- 부동산
- 클린아키텍처
- 안드로이드
- Fragment
- 코루틴
- 안드로이드기초
- 앱개발
- 디자인패턴
- 비동기처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함