티스토리 뷰

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
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
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
글 보관함