以下是我如何杀死该应用并再次启动它
Intent mStartActivity = new Intent(this, InitialActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 500, mPendingIntent);
android.os.Process.killProcess(android.os.Process.myPid());
有些设备显然无法杀死应用程序,然后在500毫秒内启动它,用户看到黑屏。 是否有更好,更可靠的方法来做到这一点?
答案 0 :(得分:0)
我已经非常可靠地使用以下代码,无需等待500毫秒,也允许您在需要某些特定动画时调用overridePendingTransition
public static void restart(Activity activity) {
Intent intent = new Intent(activity, <your main activity>.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
activity.startActivity(intent);
}
答案 1 :(得分:0)
开始一项新活动,我们称之为SuicideActivity。
在SuicideActivity中,只需调用System.exit()。
JVM将停止,系统将重新启动您的应用程序,但在父活动中。 在SuicideActivity里面你可能需要延迟自杀,比如
onCreate(Bundle savedInstanceState) {
runOnUiThread(new Runnable() { public void run() { System.exit(0); }});
}