取得系统运行的所有的服务
mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> runServiceList = mActivityManager.getRunningServices(defaultNum);
取得栈顶Activity的信息
ActivityManager manager = (ActivityManager)context.getSystemService(ACTIVITY_SERVICE) ;
List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1) ;
RunningTaskInfo info = runningTaskInfos.get(0);
//栈顶的Activity就是info.topActivity
String shortClassName = info.topActivity.getShortClassName(); //类名
String className = info.topActivity.getClassName(); //完整类名
String packageName = info.topActivity.getPackageName(); //包名
}
<uses-permission android:name = “android.permission.GET_TASKS”/>
判断当前应用是否在前台
public static boolean isAppOnForeground(Context context)
{
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String packageName = context.getPackageName();
List<RecentTaskInfo> appTask = activityManager.getRecentTasks(Integer.MAX_VALUE, 1);
if (appTask == null)
{
return false;
}
if (appTask.get(0).baseIntent.toString().contains(packageName))
{
return true;
}
return false;
}
本文介绍如何使用Android系统服务API获取运行中的所有服务和栈顶Activity的具体信息,包括服务列表、获取权限及判断应用是否处于前台状态的方法。
2249

被折叠的 条评论
为什么被折叠?



