最近因为项目需要,调研了下android 5.0 获取topActivity的方法,网上相关资料比较少,特写出来跟大家分享下。
5.0以下系统获取topActivity的方法,相信大家都很熟悉了,比较容易找,总结起来我用过的大概有两种:
ActivityManager am = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);
if (am == null) {
return null;
}
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (tasks != null && !tasks.isEmpty()) {
ComponentName componentName = tasks.get(0).topActivity;
if (componentName != null) {
return componentName.getClassName();
}
}
这个可以得到目前topActivity的类名,注意是类名而不是包名,想获取包名调用getPackageName方法
第二种是专门针对输入法服务的
PackageInfo pkgInfo;
pkgInfo &#