获取当前运行应用信息的几种方法
Posted zero-27
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取当前运行应用信息的几种方法相关的知识,希望对你有一定的参考价值。
android5.0之前,获取任务栈最顶端的activity名
public String getTopActivity()
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
/** 获取当前正在运行的任务栈列表, 越是靠近当前运行的任务栈会被排在第一位,之后的以此类推 */
List<RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
/** 获得当前最顶端的任务栈,即前台任务栈 */
RunningTaskInfo runningTaskInfo = runningTasks.get(0);
/** 获取前台任务栈的最顶端 Activity */
String topActivity = runningTaskInfo.topActivity.toString();
return topActivity;
android5.0之前,获取当前应用包名
public String getTopPackage()
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
/** 获取当前正在运行的任务栈列表, 越是靠近当前运行的任务栈会被排在第一位,之后的以此类推 */
List<RunningTaskInfo> runningTasks = manager.getRunningTasks(1);
/** 获得当前最顶端的任务栈,即前台任务栈 */
RunningTaskInfo runningTaskInfo = runningTasks.get(0);
/** 获取前台任务栈的最顶端 Activity的包名 */
String packageName = runningTaskInfo.topActivity.getPackageName();
return packageName;
android5.0之后,当前activity已经无法获取,系统没有暴露相关的API,或许可以通过反射,但我还不知如何实现,获取当前应用的包名可以通过如下方法
public String getTopPackageName()
ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
String processName = manager.getRunningAppProcesses().get(0).processName;
return processName;
以上是关于获取当前运行应用信息的几种方法的主要内容,如果未能解决你的问题,请参考以下文章