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

新手上路,请多包涵

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

原文由 Jimmy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

无法 在 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;
}

原文由 desidigitalnomad 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏