解决方案 »

  1.   

    不知道你说的程序名是不是包名。
    /**
     * 判断程序是否在前台运行
     * 
     * @param packageName
     * @return
     */
    public boolean isOpen(String packageName) {
    if (packageName.equals("") | packageName == null)
    return false;
    ActivityManager am = PhoneManager.getActivityManager(context);
    List<RunningAppProcessInfo> runningAppProcesses = am
    .getRunningAppProcesses();
    for (RunningAppProcessInfo runinfo : runningAppProcesses) {
    String pn = runinfo.processName;
    if (pn.equals(packageName)
    && runinfo.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND)
    return true;
    }
    return false;
    }
      

  2.   

    可以参照recent app的  自己搜一下
      

  3.   

    List<RunningAppProcessInfo> infos = activityManager.getRunningAppProcesses();
    可以获取到正在运行的程序
      

  4.   

    List<ApplicationInfo> infos = packageManager.getInstalledApplications(0);
    List<RunningAppProcessInfo> runnings= activityManager.getRunningAppProcesses();
    for (ApplicationInfo info : infos) {
    String appName = packageManager.getApplicationLabel(info).toString();
            String packageName=info.packageName;

    for (RunningAppProcessInfo running: runnings) {
    if(running.processName.equals(packageName);){
            System.out.println(appName);//正在运行的应用程序名
            }
    }
    }