第一部分 :
如果您知道应用程序的程序包名称,请尝试以下操作( 将以下代码片段放入应用程序的onCreate方法中 ):
ActivityManager am= (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
然后,
boolean exit = false; while(!exit) { List<RunningTaskInfo> taskInfo = am.getRunningTasks(1); ComponentName componentInfo = taskInfo.get(0).topActivity; if(componentInfo.getPackageName().equals("Your package name")) { //Do your work here exit = true; } }当您启动应用程序时,它将被放入 componentInfo中 。该 taskInfo.get(0).topActivity
将在前台返回的活动。因此,您可以通过使用第二个代码段比较程序包来知道您的应用已启动。
注意 :将第二个代码段放入 Asynctask中, 以便可以在 后台 检查应用程序是否已启动。
第二部分:
为了获得优先级,我认为您可以通过检查列表 TaskInfo 来实现,该列表将包含所有正在运行的应用程序。



