标签:recent-app android framework 应用图标
问题描述
打开图库,点击“发送 ”按钮,选择上传到苏宁云,分享后点击“最近应用 ”按钮,发现云盘图标异常。
问题分析
模块SystemUI
源码位置:frameworks/base/packages/SystemUI/src/com/android/systemui/recent/
icon加载过程(RecentTaskLoader.java)
从Task信息中获取图标
final ResolveInfo resolveInfo = pm.resolveActivity(recentInfo.baseIntent, 0);
private Drawable getFullResIcon(ResolveInfo info, PackageManager packageManager) {
Resources resources;
try {
resources = packageManager.getResourcesForApplication(
info.activityInfo.applicationInfo);
} catch (PackageManager.NameNotFoundException e) {
resources = null;
}
if (resources != null) {
int iconId = info.activityInfo.getIconResource();
if (iconId != 0) {
return getFullResIcon(resources, iconId);
}
}
return getFullResDefaultActivityIcon();
}
public final int getIconResource() {
return icon != 0 ? icon : applicationInfo.icon;
}
若activity设置了icon返回activity的icon,否则返回application icon。
Drawable getFullResDefaultActivityIcon() {
return getFullResIcon(Resources.getSystem(),
com.android.internal.R.mipmap.sym_def_app_icon);
}
android.R.mipmap
常量
int sym_def_app_icon
Default icon for applications that don’t specify an icon.
(小机器人来啦!)
结论
Recent apps应用图标显示优先级为:
扩展阅读
Android源码学习之六——ActivityManager框架解析
android ActivityManagerService 源码分析—-Activity管理(一)
标签:recent-app android framework 应用图标
原文地址:http://blog.csdn.net/wenping1980/article/details/45371145