너무 빨리 왔나요? ㅎㅎ,,,
어쨌든 다시 돌아온 효그니에여 ><~
이번 차시에는 Handler를 사용해서 Splash화면을 구현해볼거에요
일단 Handler가 뭔지 바로 알아보실까요?
사실 Handler라고 하면 사실 여러가지의 의미가 있어요.
일단 차를 운전할때 핸들이라던가 <-퍽
Handler의 종류로는!
interrupt handler: 인터럽트 접수에 대응하여 특정 기능을 처리하는 기계어 코드 루틴
java.util.logging.handler : 자바 프로그램 진행중 발생한 로그를 출력하는 방법을 다루는 클래스
android.os.Handler : 이번에 다룰 핸들러
이렇게 있는데,
먼저 안드로이드 핸들러는 Thread, Message, Lopper등과 관련이 있어요!
자 그렇다면 핸들러는 어떤 구조로 동작하는 걸까요?
Looper+MessageQueue=Handler
라고 생각하시면 편해요.
기본 생성자를 통해 Handler를 생성하면, 새롭게 생성된 Handler는 해당 생성자가 호출된
그 Thread의 MessageQueue, Looper에 자동으로 연결되요
자, 핸들러를 이해했으면 써먹어야겠죠?
안드로이드 스튜디오를 켜주세요!
activity_splash를 만들어줘요!
그리고 SplashActivity도 만들어줘요!
일단 activity_splash에 TextView로 스플래쉬라고 써볼까요?
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="SPLASH"
android:gravity="center"
android:textSize="40dp"
android:textColor="#FFF"
android:background="#efc6c6"
/>
자 그럼 스플래시 화면 구별도 해두었으니... SplashActivity로 이동해볼까요?
여기에서 소스를 짜봅시다
val handler = Handler()
handler.postDelayed({
val intent = Intent(baseContext, MainActivity::class.java)
startActivity(intent)
finish()
}, 3000)
handler를 사용하여 Delay를 주고, 3000밀리세컨(3초) 후 MainActivity가 실행되게 하는 소스입니다.
이제 AndroidManifest.xml로 이동하여
<activity android:name=".MainActivity"/>
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
이렇게 intent.action.MAIN런쳐 에는 SplashActivity를, activity에 MainActivity를 넣어서 스플래시 액티비티를 먼저 실행하게 합니다.
이제 한번 앱을 실행해 볼까요?
정상적으로 SplashActivity가 실행된 후, 3초 뒤!!!
SplashActivity가 종료되고 MainActivity로 넘어갔습니다.
여러분은 오늘 Handler를 배웠어요!!!
와~!!! 드디어 Splash화면을 띄울 수 있게 되었습니다.
추후에 Lottie나 Glide같은 여러 라이브러리들과 연계되어 활용성이 무궁 무진한 화면이기에
제대로 기억해두는점이 좋을것 같습니다!
오늘도 좋은하루 되세요!! ^~^
'Android > Android Lecture' 카테고리의 다른 글
안드로이드 강의 8. Fragment를 사용하자! (4) | 2019.04.09 |
---|---|
안드로이드 강의 7. ListView 사용법과 CardView레이아웃! (2) | 2019.04.09 |
안드로이드 강의 5. Intent와 Activity 이동 (5) | 2019.04.08 |
안드로이드 강의 4. Button, OnClickListener, Toast 메시지 (1) | 2019.04.08 |
안드로이드 강의 3. LinearLayout으로 용지, 계산기 레이아웃 만들기 (0) | 2019.04.08 |