我正在运行一项服务,该服务检查当前正在前台运行的应用程序。以下代码提供了当前的前台应用程序名称。
ActivityManager activityManager = (ActivityManager)
getSystemService(Context.ACTIVITY_SERVICE);
ListappProcesses=activityManager.getRunningTasks(1);
//get foreground App name
foregroundApp=appProcesses.get(0).topActivity.getPackageName();
现在我把这段代码放在服务中。如果前台应用程序已更改,则服务每15秒检查一次。如果前台应用程序发生更改,则前台变量会更新。如何比较foregroundApp变量的值何时发生变化?
答案 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字符串
进行检查