在Android,即Lollipop(api level 21)之前, 使用如下代码来获得当前运行的app,即所谓的top Activity:
private String getRunningActivityName(){
ActivityManager activityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
String runningActivity=activityManager.getRunningTasks(1).get(0).topActivity.getClassName();
return runningActivity;
}
其中 获取包名、完整类名、类名可以这样做:
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
RunningTaskInfo info = manager.getRunningTasks(1).get(0);
String shortClassName = info.topActivity.getShortClassName(); //类名
String className = info.topActivity.getClassName(); //完整类名
String packageName = info.topActivity.getPackageName(); //包名
场景:收到消息根据不同activity添加不同的标签做区别,对应的最顶层即前台处理来处理。
就是getShortClassName()不起效,或者说不