比较android服务中的变量值

时间:2012-09-17 11:17:38

标签: android

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

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

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

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

3 个答案:

答案 0 :(得分: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
  }

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以将appname存储在另一个字符串中,并使用foregroundApp字符串

进行检查