맨땅에 코딩

'학습의 숲' 소소한 개발일지 - 인트로 본문

KAU 2023 (2학년)/객체지향프로그래밍

'학습의 숲' 소소한 개발일지 - 인트로

나는 푸딩 2024. 7. 25. 19:43

IntroActivity

🍀 앱이 실행되면 먼저 시작 화면을 3초 동안 보여주고, 그 후에 메인 화면(HostActivity)로 전환하는 기능을 구현하였다. 앱의 인트로 화면을 보여주며 사용자에게 앱이 로딩 중임을 알린다.

 

package com.example.forestlearning

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler

class IntroActivity : AppCompatActivity() {
    //액티비티가 생성될 때 호출되는 매소드
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //layout에서 activity_intro를 뷰로 설정
        setContentView(R.layout.activity_intro)
        //핸들러 객체 생성
        val handler = Handler()
        //핸들러에게 3초 후 실행할 작업 전달
        handler.postDelayed({
            //새로운 인텐트 생성, 이 인텐트로 HostActivity 실행
            val intent = Intent(applicationContext, HostActivity::class.java)
            startActivity(intent)
            //현재 액티비티 종료
            finish()
        }, 3000) //3초 후 실행
    }

    //액티비티 일시 중지될 때 호출되는 메소드
    override fun onPause() {
        super.onPause()
        //액티비티 일시 중지 되면 액티비티 종료
        finish()
    }
}

 

 

  1. onCreate(): 액티비티가 생성될 때 호출되는 메소드이다. setContentView(R.layout.activity_intro)를 통해 activity_intro.xml 레이아웃 파일을 이 액티비티의 뷰로 설정한다.
  2. Handler(): Handler 클래스는 안드로이드에서 백그라운드 스레드에서 메인 스레드로 코드를 실행할 수 있게 해주는 클래스다. 여기서는 3초 후에 특정 코드를 실행하도록 설정하였다.

  3. postDelayed(): Handler의 postDelayed 함수는 Runnable 객체와 지연시간을 인자로 받아, 지정한 시간 이후에 Runnable 객체의 run() 메소드를 실행한다. 여기서는 3초 후에 HostActivity를 실행하도록 설정하였다.

  4. Intent(): Intent는 안드로이드 컴포넌트들이 서로 상호작용하는 방법을 제공한다. 여기서는 HostActivity를 실행하기 위한 Intent를 생성하였다.

  5. startActivity(): Intent를 사용하여 액티비티를 시작하는 함수이다. 여기서는 생성한 Intent를 인자로 전달하여 HostActivity를 시작하였다.

  6. finish(): 현재 액티비티를 종료하는 함수이다. 시작 화면이 3초 후에 HostActivity로 넘어가고 난 후에는 더 이상 필요하지 않으므로 종료한다.

  7. onPause(): 액티비티가 일시 중지될 때 호출되는 메소드이다. 액티비티가 일시 중지되면 finish() 함수를 호출하여 액티비티를 종료한다. 이는 사용자가 앱을 빠져나가거나, 화면이 다른 액티비티로 전환되는 등의 이유로 액티비티가 일시 중지되는 경우에 대비한 것이다.