首页 > 解决方案 > 如何在 android oreo 和更高版本的设备中重启应用程序?

问题描述

我可以在低于 android oreo 的设备中重启应用程序,我的问题是,如何使用 Kotlin 或 Java 在 oreo 和更高版本的设备中执行重启?

val intent = Intent(applicationContext, MainActivity::class.java)
    val mPendingIntentId = 1000
    val mPendingIntent = PendingIntent.getActivity(applicationContext, mPendingIntentId, intent, PendingIntent.FLAG_CANCEL_CURRENT)
    val mgr = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
    mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent)
    System.exit(0)

标签: javaandroidkotlin

解决方案


System.exit(0) 不是最好的方法,因为您不能期望在您的应用程序下运行的当前线程的状态,它可能导致文件损坏问题。试试这个:

Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

Runtime.getRuntime().exit(0);

推荐阅读