봄날은 갔다. 이제 그 정신으로 공부하자

앱 재실행 (App Restart) 본문

android Tip

앱 재실행 (App Restart)

길재의 그 정신으로 공부하자 2021. 1. 22. 10:35

앱을 개발하다보면 설정값 변경 등으로 초기화가 필요해 불가피하게 앱을 재실행해야하는 경우가 발생합니다.

이번 글에서는 앱을 재실행하는 방법에 대해 초간단하게 설명합니다.

 

아래 코드는 context를 가지고 있는 Activity를 기준으로 작성되었으며 PackageManager를 통해 앱 이름(PackageName)으로 Intent를 생성한 후에 해당 Intent로 부터 componentName을 가져오고 이걸로 Intent class에서 지원하는 makeRestartActivityTask()함수를 호출해 별도의 restartIntent를 만들고 startActivity()함수를 호출하면 앱이 재실행됩니다.

val intent = packageManager.getLaunchIntentForPackage(packageName)
intent?.let {
    val componentName = it.component
    val restartIntent = Intent.makeRestartActivityTask(componentName)
    startActivity(mainIntent)
}

 

위 코드를 설명을 위해 풀어서 작성한 코드이므로 코드 정리가 필요합니다.

생성 후 한번만 참조되는 변수들을 간략화 해주면 아래와 같이 간략하게 코딩이 가능합니다.

packageManager.getLaunchIntentForPackage(packageName)?.let {
    startActivity(Intent.makeRestartActivityTask(it.component))
}

 

Comments