android - 如何获取正在运行的应用程序列表?

标签 android

我正在开发一个应用程序,该应用程序需要到目前为止在系统上运行的应用程序的信息。是否有检索此类信息的 API/方法?

最佳答案

无法检测到 Android 中的应用启动,但您可以使用以下代码获取当前打开的应用列表并检查您要查找的应用是否打开:

ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

for (int i = 0; i < runningAppProcessInfo.size(); i++) {
  if(runningAppProcessInfo.get(i).processName.equals("com.the.app.you.are.looking.for")) {
    // Do your stuff here.
  }
}

您也可以使用此方法检查应用是否在前台运行

public static boolean isForeground(Context ctx, String myPackage){
    ActivityManager manager = (ActivityManager) ctx.getSystemService(ACTIVITY_SERVICE);
    List< ActivityManager.RunningTaskInfo > runningTaskInfo = manager.getRunningTasks(1); 

    ComponentName componentInfo = runningTaskInfo.get(0).topActivity;
    if(componentInfo.getPackageName().equals(myPackage)) {
        return true;
    }       
    return false;
}

关于android - 如何获取正在运行的应用程序列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3304685/

相关文章:

android - ViewPager 类似于 AndroidTV 中 BrowseFragment 中的东西

android - 当软键盘消失时,WebView(内部带有 iframe)不会调整大小

android - React native 硬件后退按钮不起作用

android - 这个 "OnChecksumsReadyListener.onChecksumsReady"AbstractMethodError 背后的原因是什么?

android - 如何测试 Kotlin Coroutine actors

android - 关于 Android 中按钮的非常简单的示例?

android - 从Android中的原始文件夹加载文件

java - 检查 Firebase Android 中是否存在 ID

android - 如何在 Robolectric 中对 RecyclerView 和 LinearLayoutManager 进行单元测试?

java.lang.IllegalArgumentException : 'value' belongs to a different Realm