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

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

 

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

 

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

 

 


 

작성코드👀

 

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

    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);
    }

 

 

감사합니다.

 

 

 

 

예제소스

https://github.com/tekken5953/RestartApplicationExam

 

GitHub - tekken5953/RestartApplicationExam

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

github.com