直接调appReRunning
/**
* 打开另一个app
*
* @param context
* @param packname
*/
public static int openOtherApp(Context context, String packname, PackageManager packageManager) {
try {
Intent intent = packageManager.getLaunchIntentForPackage(packname);
if (null == intent) {
LogUtil.d("程序不存在:" + packname);
return 1;
}
context.startActivity(intent);
} catch (Exception e) {
LogUtil.e("打开程序错误:", e);
return 1;
}
// 打开第三方后
// exitAndKillMyself(context);
return 0;
}
/**
* APP重新打开
* @param context
* @param packageName
*/
public static void appReRunning(Context context, String packageName) {
ActivityManager mActivityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> listOfProcesses = mActivityManager
.getRunningAppProcesses();
boolean isRun = false;
for (ActivityManager.RunningAppProcessInfo process : listOfProcesses) {
if (process.processName.contains(packageName)) {
isRun = true;
break;
}
}
if (!isRun) {
LogUtil.d("任我飞没有在运行,强制打开");
// 拉活
CommonUtil.openOtherApp(context.getApplicationContext(), packageName, context.getPackageManager());
}
}