Hallo teman-teman, hari ini kita akan bahas bagaimana cara merestart aplikasi yang sudah teman-teman buat. Simplenya ini akan dibutuhkan ketika kamu set value di aplikasi, dan itu akan baru berubah jika aplikasi kamu di reopen.
Salah satu contohnya adalah ketika kamu menerapkan tracking name file aplikasi, seperti feature greeter.
Untuk melakukan restart, kamu bisa gunakan code kotlin seperti ini :
val context = signal.context
val packageManager = context.packageManager
val intent = packageManager.getLaunchIntentForPackage(context.packageName)
val componentName = intent?.component
val mainIntent = Intent.makeRestartActivityTask(componentName)
context.startActivity(mainIntent)
Runtime.getRuntime().exit(0)
Untuk lengkapnya, kamu bisa cobain seperti ini :
private fun restartDevice(status: Boolean) {
viewModel.saveStatusDevGreeter(status)
lifecycleScope.launch {
delay(1500L)
safeContext { context ->
val packageManager = context.packageManager
val intent = packageManager.getLaunchIntentForPackage(context.packageName)
val componentName = intent?.component
val mainIntent = Intent.makeRestartActivityTask(componentName)
context.startActivity(mainIntent)
Runtime.getRuntime().exit(0)
}
}
}
Pada fungsi diatas, kita melakukan saveStatusDevGreeter pada sharepreference. Itulah kenapa pada code diatas terdapat delay, memastikan value telah disimpan dan kemudian baru melakukan restart aplikasi.
Gimana? menarik ya