Итак, у меня есть этот метод getSpecialCharacter
, который вызывается из множества различных действий.
public static Spanned getSpecialCharacter(Context context){
Spanned spanned_character = CacheFactory.spannedCache.get("green");
if (spanned_character ==null) {
spanned_character = getSymbolColor(context, " \uf100", Color.GREEN);
CacheFactory.spannedCache.put("green", spanned_character);
}
return spanned_character;
}
private static Spanned getSymbolColor(Context context, String s_symbol, int color){
Typeface font = Typeface.createFromAsset(context.getAssets(), "font.ttf");
SpannableString ss = new SpannableString(s_symbol);
ss.setSpan (new CustomTypefaceSpan(font), 0, s_symbol.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(color), 0, s_symbol.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}
Он в основном устанавливает специальный символ из загруженного шрифта и применяет зеленый цвет. Работает нормально. Этот метод вызывается сотни раз, поэтому я кеширую «специальный символ», чтобы шрифт и диапазон вызывались только один раз (в первый раз).
Я должен передать контекст, чтобы загрузить шрифт, однако контекст нужен только в первый раз. Интересно, теряю ли я какую-то производительность, пропуская Context сотни раз? Стоит ли это какой-либо производительности? Любые предложения по улучшению моего кода?