最近做了一个单点登录的功能,当APP退出登录的时候为了方便需要重启APP,走登录的流程。具体实现逻辑如下:
/**
* Relaunch the application.
*/
public static void relaunchApp() {
relaunchApp(false);
}
/**
* Relaunch the application.
*
* @param isKillProcess True to kill the process, false otherwise.
*/
public static void relaunchApp(final boolean isKillProcess) {
Intent intent = getLaunchAppIntent(AppMemContext.mApp.getPackageName(), true);
if (intent == null) {
Log.e("AppUtils", "Didn't exist launcher activity.");
return;
}
intent.addFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK
);
AppMemContext.mApp.startActivity(intent);
if (!isKillProcess){
return;
}
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}