0

我目前正在使用 AndroidUsageStats在服务内的 android 中获取当前的前台应用程序。但是,当我从任何应用程序收到通知时,我的应用程序会认为另一个应用程序在前台。“唷,那是一个鼻屎打字”

基本上,我需要一种方法来获取当前前台应用程序,不包括任何通知。

知道了?谢谢!

编辑:

如果我目前的方法无法满足我的要求,我还有哪些其他选择?

4

1 回答 1

0

您可以在前台获取当前应用程序的包名:

    private String isAppOnForeground(Context context) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
    if (appProcesses == null) {
      return null;
    }

    for (RunningAppProcessInfo appProcess : appProcesses) {
      if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
        return appProcess.processName;
      }
    }
    return null;
  }
于 2017-02-16T14:27:05.263 回答