맨땅에 코딩
'학습의 숲' 소소한 개발일지 - 인트로 본문
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()
}
}
- onCreate(): 액티비티가 생성될 때 호출되는 메소드이다. setContentView(R.layout.activity_intro)를 통해 activity_intro.xml 레이아웃 파일을 이 액티비티의 뷰로 설정한다.
- Handler(): Handler 클래스는 안드로이드에서 백그라운드 스레드에서 메인 스레드로 코드를 실행할 수 있게 해주는 클래스다. 여기서는 3초 후에 특정 코드를 실행하도록 설정하였다.
- postDelayed(): Handler의 postDelayed 함수는 Runnable 객체와 지연시간을 인자로 받아, 지정한 시간 이후에 Runnable 객체의 run() 메소드를 실행한다. 여기서는 3초 후에 HostActivity를 실행하도록 설정하였다.
- Intent(): Intent는 안드로이드 컴포넌트들이 서로 상호작용하는 방법을 제공한다. 여기서는 HostActivity를 실행하기 위한 Intent를 생성하였다.
- startActivity(): Intent를 사용하여 액티비티를 시작하는 함수이다. 여기서는 생성한 Intent를 인자로 전달하여 HostActivity를 시작하였다.
- finish(): 현재 액티비티를 종료하는 함수이다. 시작 화면이 3초 후에 HostActivity로 넘어가고 난 후에는 더 이상 필요하지 않으므로 종료한다.
- onPause(): 액티비티가 일시 중지될 때 호출되는 메소드이다. 액티비티가 일시 중지되면 finish() 함수를 호출하여 액티비티를 종료한다. 이는 사용자가 앱을 빠져나가거나, 화면이 다른 액티비티로 전환되는 등의 이유로 액티비티가 일시 중지되는 경우에 대비한 것이다.
'KAU 2023 (2학년) > 객체지향프로그래밍' 카테고리의 다른 글
'학습의 숲' 소소한 개발일지 - 과일 누적 랭킹 (0) | 2024.07.25 |
---|---|
'학습의 숲' 소소한 개발일지 - 나의 시간표 (0) | 2024.07.25 |
'학습의 숲' 소소한 개발일지 - 회원 가입, 로그인, 로그아웃 (0) | 2024.07.25 |
객체지향프로그래밍 실화인가 - '학습의 숲' (0) | 2024.07.09 |
객체지향프로그래밍 실화인가 - 과목 소개 및 수강 후기 (0) | 2024.06.26 |