@Override public void onTrimMemory(final int level) {
		if (! mStarted) return;
		final ConcurrentHashMap<String, T> apps = mAppMap.get();
		switch (level) {
		case TRIM_MEMORY_RUNNING_MODERATE:
		case TRIM_MEMORY_RUNNING_LOW:
		case TRIM_MEMORY_RUNNING_CRITICAL:
		case TRIM_MEMORY_UI_HIDDEN:
		case TRIM_MEMORY_BACKGROUND:
			Log.d(TAG, "Trim memory for level " + level);
			apps.values().forEach(AppInfo::trimMemoryOnUiHidden);
			break;
		case TRIM_MEMORY_MODERATE:
		case TRIM_MEMORY_COMPLETE:
			Log.i(TAG, "Clean memory for level " + level);
			apps.values().forEach(AppInfo::trimMemoryOnCritical);
			break;
		}
	}
Called by {@link AppLabelCache} when app label is lazily-loaded or updated (changed from cache)
mobile/src/main/java/com/oasisfeng/common/app/AppListProvider.java