2

我正在运行一项服务,该服务检查当前在前台运行的应用程序。以下代码提供了当前前台应用名称。

ActivityManager activityManager = (ActivityManager)
getSystemService(Context.ACTIVITY_SERVICE);
ListappProcesses=activityManager.getRunningTasks(1);

//get foreground App name 
 foregroundApp=appProcesses.get(0).topActivity.getPackageName();

现在我把这段代码放在一个服务里面。该服务每 15 秒检查一次前台应用程序是否已更改。如果前台应用程序更改,则前台变量会更新。当foregroundApp变量的值发生变化时如何比较?

4

3 回答 3

2
  boolean isChanged = false;
  String packageName = appProcesses.get(0).topActivity.getPackageName();
  if(!packageName.equals(foregroundApp)) {
      foregroundApp = packageName;
      isChanged = true;
  }

  if(isChanged) {
        // do your implementation if another app comes to foreground
  }
于 2012-09-17T11:21:30.493 回答
0

您可以将最后一个包名称保存在静态字符串中,也可以使用 SharedPreferences 保存...在下一次检查中,您只需比较字符串(使用 String.compare)。

于 2012-09-17T11:19:41.940 回答
0

您可以将 appname 存储在另一个字符串中并使用 foregroundApp 字符串进行检查

于 2012-09-17T11:20:27.047 回答