Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何判断应用程序是否位于堆栈顶部以及显示的活动?_Android_Android Activity - Fatal编程技术网

Android 如何判断应用程序是否位于堆栈顶部以及显示的活动?

Android 如何判断应用程序是否位于堆栈顶部以及显示的活动?,android,android-activity,Android,Android Activity,我有一个有很多活动的应用程序,比如a、B、C、D、E、F。。活动等等 我如何判断应用程序是否位于堆栈顶部以及显示的活动是什么?这将为您提供一个正在运行的进程列表,最新的是第一个进程-因此,如果第一个应用程序是您的,它将位于堆栈顶部。也许不是最好的解决办法,但我目前能想到的唯一办法 ActivityManager am = (ActivityManager) getSystemService(Service.ACTIVITY_SERVICE); List<ActivityManager.Ru

我有一个有很多活动的应用程序,比如a、B、C、D、E、F。。活动等等


我如何判断应用程序是否位于堆栈顶部以及显示的活动是什么?

这将为您提供一个正在运行的进程列表,最新的是第一个进程-因此,如果第一个应用程序是您的,它将位于堆栈顶部。也许不是最好的解决办法,但我目前能想到的唯一办法

ActivityManager am = (ActivityManager)
getSystemService(Service.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processes;
processes = am.getRunningAppProcesses();
int i = 1;
for(ActivityManager.RunningAppProcessInfo info: processes) {
    System.out.println(i++ + ": " + info.processName);
} 
ActivityManager am=(ActivityManager)
getSystemService(服务、活动和服务);
列出进程;
processs=am.getRunningAppProcesses();
int i=1;
对于(ActivityManager.RunningAppProcessInfo:进程){
System.out.println(i+++:“+info.processName);
} 
编辑:因为你只需要第一个,所以对于你的需要,它实际上会更适合你

ActivityManager am = (ActivityManager)
getSystemService(Service.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processes;
processes = am.getRunningAppProcesses();
ActivityManager.RunningAppProcessInfo y = processes.get(0);
System.out.println("On top: " + y.processName);  
ActivityManager am=(ActivityManager)
getSystemService(服务、活动和服务);
列出进程;
processs=am.getRunningAppProcesses();
ActivityManager.RunningAppProcessInfo y=processs.get(0);
System.out.println(“顶部:+y.processName”);

请再解释一下……堆栈上没有“应用程序”。如果某个活动正在运行,则该活动位于堆栈顶部;也就是说,调用了
onResume()
方法。