val restartIntent = Intent(applicationContext, SignInActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
}
val restartHandler = Handler(Looper.getMainLooper())
restartHandler.postDelayed({
startActivity(restartIntent)
android.os.Process.killProcess(android.os.Process.myPid())
exitProcess(0)
}, 1000)
- 재시작할 액티비티인 SignInActivity로 가는 Intent 생성
- 기존 액티비티 스택을 모두 비우고 새로운 태스크로 시작
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
- 메인 스레드에서 핸들러 생성, 1초 후에 액티비티를 재시작하고 프로세스를 종료
- SignInActivity 실행
startActivity(restartIntent)
- 현재 프로세스 종료
android.os.Process.killProcess(android.os.Process.myPid())
- 프로세스를 완전히 종료 (0은 정상 종료)
exitProcess(0)
- 1초(1000ms) 후에 실행