We would like to know how to start an App if it is not Running.
import java.util.List; /*from w w w .ja v a2 s . co m*/ import android.app.ActivityManager; import android.app.ActivityManager.RunningTaskInfo; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; public class Main { public static boolean startApp(Context context, Class<?> launcherActivityClass){ try { Intent intent; if(isAppRunning(context)){ intent = new Intent(context, launcherActivityClass); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } else { String packageName = context.getPackageName(); intent = context.getPackageManager().getLaunchIntentForPackage(packageName); if(intent != null){ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); context.startActivity(intent); } else { return false; } } } catch (ActivityNotFoundException e){ return false; } return true; } public static boolean isAppRunning(Context context) { boolean isRunning = false; ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> list = am.getRunningTasks(100); if (list.size() <= 0) { return false; } String packageName = context.getPackageName(); for (RunningTaskInfo info : list) { if (info.topActivity.getPackageName().equals(packageName)) { isRunning = true; break; } } return isRunning; } }