重新启动应用程序:完成如下:
fun restartApp(context: Context) {
try {
val mStartActivity = Intent(context, SplashActivity::class.java)
val mPendingIntentId = 123456
val mPendingIntent: PendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT)
val mgr: AlarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 500, mPendingIntent)
System.exit(0)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
然后尝试如下:
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
但是,没有成功。
我正在更新 BLE 设备中的固件,成功写入后,我需要完全重新启动应用程序。实施了上述两种方法,但没有成功。
我想清除所有分配的值并且必须重新启动应用程序,即不仅仅是开始新的活动。
我怎样才能做到这一点?谢谢。
注意:这个问题有很多解决方案,但它可能特定于 Android 11。