3

現在実行中のアプリケーションを取得するにはどうすればよいですか?

アプリケーションが実行されているかどうかを確認したい。そのために次のコードを使用しました。

       ActivityManager activityManager =
       (ActivityManager)
       this.getSystemService(ACTIVITY_SERVICE );

   PackageManager pm =getPackageManager();
   procInfos = activityManager.getRunningAppProcesses();

しかし、ホーム画面の戻るボタンを押しても、いくつかのアプリケーションのリストが返されます。実行中のアプリリストはまだリストに表示されています。しかし、私はそのリストにフォアグラウンドのアプリのみを表示したいと思います。

では、フォアグラウンドとバックグラウンドで実行されているアプリを区別するにはどうすればよいでしょうか。

つまり、現在フォアグラウンドで実行されているアプリケーション、または破壊されていないアプリケーションを検出する方法です。バックグラウンドで実行されているアプリを取得したくありません。

4

1 に答える 1

7

現在アクティブな画面のパッケージを提供する次のコードを試すことができます。

ActivityManager am = (ActivityManager) this
                .getSystemService(ACTIVITY_SERVICE);

// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);

ComponentName componentInfo = taskInfo.get(0).topActivity;
if(!componentInfo.getPackageName().equals("your.package.name"))
{
    //Do your stuff
}

許可が必要な場合があります

<uses-permission android:name="android.permission.GET_TASKS" />
于 2012-06-28T14:34:25.843 に答える