Search code examples
androidandroid-studioandroid-activityandroid-manifestnavigation-architecture

Completely restart android app including application class


I want to restart the application after the user changes language within the application.

  • I'm starting new intent for MainActivity or as another solution I tried activity.recreate() methods but fragments are not initialized when restarting Activity. (I am using Navigation Component)

  • I am using Koin for dependency injection and some scopes are lost and app crash.

I will restart the Application class and main activity specified in the AndroidManifest.xml, so how can I start the application as if I were reopening it from scratch?


Solution

  • This restarts the whole application

    val intent = Intent(context, MainActivity::class.java)
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    context.startActivity(intent)
    context.finish()
    Runtime.getRuntime().exit(0)