반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 브루트포스
- 멀티맵
- 백준
- 자료 구조
- 분할정복
- 그래프 이론
- c++
- 문자열
- 다이나믹 프로그래밍
- 풀이
- dfs
- 그래프 탐색
- map
- 그래프
- 코드트리 조별과제
- 맵
- 다익스트라
- dp
- 코딩테스트
- BFS
- 파이어베이스
- 코틀린
- 코드트리조별과제
- 안드로이드
- c++풀이
- 백트래킹
- 시뮬레이션
- 파이어스토어
- 코드트리
- 에러
Archives
- Today
- Total
Kangho_Story
[안드로이드 코틀린 Kotlin] 스플래시 엑티비티(첫 화면) 띄우기 본문
728x90
반응형
앱이 처음 시작하면 스플래시 화면을 2초간 띄운 후 기존에 로그인한 사용자라면 MainActivity로 intent하고 처음 접속하는 사용자라면 LoginActivity로 intent하는 SplashActivity를 만들어보자.
우선 Empty Views Activity를 하나 만들어주고 이름은 SplashActivity로 한다.
그리고 앱 시작시 SplashActivity부터 시작해야 하므로 AndroidManifest.xml에 들어가서 기존에 MainActivity에 있던 <intent-filter>를 잘라내서 SplashActivity에 붙여준다.
그리고 나는 파이어베이스의 Autentication을 사용해서 로그인 기능을 구현할 예정이며 이와 관련된 설정은 생략하도록 한다.
class SplashActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_splash)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
// 일정 시간 지연 이후 실행하기 위한 코드
Handler(Looper.getMainLooper()).postDelayed({
auth = Firebase.auth
val currentUser = auth.currentUser
if (currentUser == null) {
Log.d("splash","비로그인")
//비로그인 상태
// 일정 시간이 지나면 MainActivity로 이동
val intent = Intent(this, LoginActivity::class.java)
startActivity(intent)
// 이전 키를 눌렀을 때 스플래시 스크린 화면으로 이동을 방지 하기 위해
// 이동한 다음 사용 안 함으로 finish 처리
finish()
}else {
Log.d("splash","로그인")
//로그인 상태
// 일정 시간이 지나면 MainActivity로 이동
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
// 이전 키를 눌렀을 때 스플래시 스크린 화면으로 이동을 방지 하기 위해
// 이동한 다음 사용 안 함으로 finish 처리
finish()
}
}, 2000) // 시간 2초 이후 실행
}
}
SplashActivity에서 로그인 상태인지 비로그인 상태인지에 따라서 어느 Acitivity로 intent할지가 결정된다.
이후 실행해보면 스플래시 화면이 2초간 지속되고 나는 비로그인 사용자이므로 LoginActivity로 이동하게 된다.
끝!
728x90
반응형
'Android' 카테고리의 다른 글
Comments