안드로이드 앱 개발기 #15 - 앱 재시작 코드

로그아웃이나 언어 변경 등으로 인해 저장되었던 자료들을 리셋하고 앱을 재시작해야 하는 경우가 있습니다. 방법을 알아보니 여러가지 코드들이 있어 어떤 것을 사용하는 게 좋을지 혼란스러웠습니다. 여러 자료들을 검토하고 종합하여 아래와 같이 사용해 보기로 하였습니다.

앱을 재시작하는 Activity 클래스의 확장 함수 restartApp()

아래 함수에는 앱을 재시작하는 코드가 구현되어 있습니다.

fun Activity.restartApp() {
    finishAffinity(this)
    startActivity(packageManager.getLaunchIntentForPackage(packageName))
    Runtime.getRuntime().exit(0)
}

finishAffinity 함수를 호출하여 현재 태스크의 모든 액티비티들을 종료 시키구요. startActivity 함수를 호출하여 앱이 처음 시작할 액티비티를 실행시킵니다. 처음 2줄만으로도 앱 재시작은 가능한데요. 부자연스러운 애니메이션이 보였습니다. 이것은 Runtime.getRuntime().exit(0) 함수를 실행하여 실행 중인 자바 가상 머신을 종료하는 것으로 해결하였습니다.


지난 안드로이드 앱 개발기

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 56758.93
ETH 3033.46
USDT 1.00
SBD 2.30