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

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;
	}






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值