0

アプリの別のインスタンスが実行されているかどうかを確認しようとしています。2 番目のインスタンスを開始すると、アプリが実行されていないことが常にわかります。チェック用のコードは次のとおりです。

public String NameActivity() {
  ActivityManager am = (ActivityManager)
    context.getSystemService(context.ACTIVITY_SERVICE);
  List l = am.getRunningAppProcesses();
  Iterator i = l.iterator();
  PackageManager pm = this.context.getPackageManager();
  while (i.hasNext()) {
    ActivityManager.RunningAppProcessInfo info =
    (ActivityManager.RunningAppProcessInfo) (i.next());
  try {
    CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(
      info.processName, PackageManager.GET_META_DATA));
    Log.w("LABEL", c.toString());
  } catch (Exception e) {
    //Name Not FOund Exception
  }
}
return null;
}

public static boolean isThisProcessRunning(Context context, String processName) {
    if (processName == null) {
        return false;
    }
    ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> processes = manager.getRunningAppProcesses();
    for (RunningAppProcessInfo process : processes) {
        if (processName.equals(process.processName)) {
            return true;
        }
    }
    return false;
}
}

あなたが私を助けてくれることを願っています。

4

1 に答える 1

1

実行中のインスタンスは常に1Applicationつだけです。複数のアクティビティまたはサービスが存在する場合がありますが、アプリケーションは 1 つだけです。したがって、コードを実行している場合は、アプリが機能していることを意味し、それはその 1 つのインスタンスにすぎません。

于 2012-07-13T18:53:55.117 に答える