package me.ele.amigo.utils; import android.app.ActivityManager; import android.app.ActivityManager.RunningAppProcessInfo; import android.content.Context; import android.content.Intent; import java.util.List; import static android.content.Context.ACTIVITY_SERVICE; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; public class ProcessUtils { private static final String TAG = ProcessUtils.class.getSimpleName(); private ProcessUtils() { } public static boolean isMainProcess(Context context) { return context.getPackageName().equals(getCurrentProcessName(context)); } private static String getCurrentProcessName(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); List<RunningAppProcessInfo> processList = activityManager.getRunningAppProcesses(); if (processList != null && processList.size() > 0) { for (RunningAppProcessInfo processInfo : processList) { if (processInfo.pid == android.os.Process.myPid()) { return processInfo.processName; } } } return null; } public static boolean isMainProcessRunning(Context context) { ActivityManager activityManager = (ActivityManager) context.getSystemService (ACTIVITY_SERVICE); List<RunningAppProcessInfo> processes = activityManager.getRunningAppProcesses(); for (int i = 0; i < processes.size(); i++) { if (processes.get(i).processName.equals(context.getPackageName())) { return true; } } return false; } public static boolean isLoadDexProcess(Context context) { String currentProcessName = getCurrentProcessName(context); String loadDexProcessName = context.getPackageName() + ":amigo"; return currentProcessName != null && currentProcessName.equals(loadDexProcessName); } public static void startLauncherIntent(Context context) { Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage(context .getPackageName()); launchIntent.addFlags(FLAG_ACTIVITY_NEW_TASK); context.startActivity(launchIntent); } }