am.getRunningTasks(1);可以获取当前的所有运行的Task,排第一个的即为前台程序。
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> runningTasks = am.getRunningTasks(1); Log.e(TAG,"top:"+runningTasks.get(0).topActivity);
注:5.0以上的版本,已经只能获取到当前app和桌面两个程序,其他程序的Task是无法获取到的。所以意义已经不大,并且am.getRunningTasks(1);已经被弃用,以后可能发生更多的变化,比如后续android版本能多任务并行运行,那么排第一个的将不再是前台程序。所以此方法慎用。