获取当前运行应用信息的几种方法

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;
	






以上是关于获取当前运行应用信息的几种方法的主要内容,如果未能解决你的问题,请参考以下文章

获取Android应用签名的几种方式

C# WinForm获取 当前执行程序路径的几种方法

转java获取当前路径的几种方法

shell获得当前目录名的几种方法

获取class 信息 java

获取当前时间的几种方法整理(Java)