問題描寫
打開圖庫,點擊“發(fā)送 ”按鈕,選擇上傳到蘇寧云,分享后點擊“最近利用 ”按鈕,發(fā)現(xiàn)云盤圖標(biāo)異常。
問題分析
模塊:SystemUI
源碼位置:
frameworks/base/packages/SystemUI/src/com/android/systemui/recent/
icon加載進(jìn)程(RecentTaskLoader.java)
從Task信息中獲得圖標(biāo)
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設(shè)置了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.
(小機(jī)器人來啦!)
結(jié)論
Recent apps利用圖標(biāo)顯示優(yōu)先級為:
(關(guān)于android 任務(wù)堆棧等更加深入的內(nèi)容請移步“擴(kuò)大瀏覽”, 強(qiáng)烈推薦~~~)
擴(kuò)大瀏覽
Android源碼學(xué)習(xí)之6――ActivityManager框架解析
android ActivityManagerService 源碼分析―-Activity管理(1)