개발새발 - IT 기술블로그
article thumbnail

안녕하세요. 이번 포스팅에서는 현재 컨텍스트에서 앱을 재시작하는 방법에 대해 알아보겠습니다.

 

보통 데이터베이스를 롤백시키거나 언어설정을 변경하는 등 어플리케이션의 환경을 변경할 때 앱을 재시작하는 경우가 많습니다. 이럴 때 유용한 코드를 소개드리겠습니다.

 

원리는 현재 프로세스를 종료시키면서 앱의 패키지 컴포넌트를 Intent의 makeRestartActivityTask 메서드의 파라미터로 호출해 다시 실행시키는 방식입니다. 

 

 


 

1. 작성코드👀

 

Kotlin

<kotlin />
private fun restartApplication(mContext: Context) { val packageManager: PackageManager = mContext.packageManager val intent = packageManager.getLaunchIntentForPackage(mContext.packageName) val componentName = intent!!.component val mainIntent = Intent.makeRestartActivityTask(componentName) mContext.startActivity(mainIntent) exitProcess(0) }

 

Java

<java />
private void restartApplication(Context mContext) { PackageManager packageManager = mContext.getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(mContext.getPackageName()); ComponentName componentName = intent.getComponent(); Intent mainIntent = Intent.makeRestartActivityTask(componentName); mContext.startActivity(mainIntent); System.exit(0); }

 

 

감사합니다.

 

 

 

 

2. 예제소스

https://github.com/tekken5953/RestartApplicationExam

 

GitHub - tekken5953/RestartApplicationExam

Contribute to tekken5953/RestartApplicationExam development by creating an account on GitHub.

github.com