或者,您可以检查ActivityManager哪些任务正在按getRunningTasks方法运行。然后,检查返回的任务列表中的第一个任务(前景中的任务)是否是您的任务。
这是代码示例:
public Notification buildNotification(String arg0, Map arg1) {
ActivityManager activityManager = (ActivityManager) appContext.getSystemService(Context.ACTIVITY_SERVICE);
List services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
boolean isActivityFound = false;
if (services.get(0).topActivity.getPackageName().toString()
.equalsIgnoreCase(appContext.getPackageName().toString())) {
isActivityFound = true;
}
if (isActivityFound) {
return null;
} else {
// write your code to build a notification.
// return the notification you built here
}
}
并且不要忘记GET_TASKS在manifest.xml文件中添加权限,以便能够运行getRunningTasks()上述代码中的方法:
备注:如果以这种方式同意,请注意,此权限现在已弃用。