要實(shí)現(xiàn)Android應(yīng)用一鍵重啟,可以使用以下代碼:
public void restartApp() {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(getApplicationContext(), mPendingIntentId, intent, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
System.exit(0);
}
在需要重啟的地方調(diào)用 restartApp()
方法即可。這個(gè)方法會(huì)創(chuàng)建一個(gè) PendingIntent
,并設(shè)置一個(gè)延遲時(shí)間,然后使用 AlarmManager
發(fā)送一個(gè)鬧鐘事件,當(dāng)鬧鐘事件觸發(fā)時(shí),會(huì)啟動(dòng)指定的 MainActivity
,從而實(shí)現(xiàn)應(yīng)用的重啟。
注意事項(xiàng):
AndroidManifest.xml
文件中為 MainActivity
添加相應(yīng)的 <intent-filter>
,確保其他的 Activity
不會(huì)被重啟。System.exit(0)
,這個(gè)方法會(huì)直接退出應(yīng)用,如果需要保存一些數(shù)據(jù)或狀態(tài),需要在退出前進(jìn)行相應(yīng)的處理。