我可以在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)
答案 0 :(得分:0)
在活动调用recreate();
中,这将导致在新实例中重新创建活动。
答案 1 :(得分:0)
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);