1

重新启动应用程序:完成如下:

   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。

4

0 回答 0