Простой ответ "Нет" меня успокоит. Если есть какая-то разница, то что это такое?
Есть ли разница между getLayoutInflater() и .getSystemService(Context.LAYOUT_INFLATER_SERVICE)
Ответ 1
Нет
Пока объект или окно, вызывающее getLayoutInflater()
, имеет тот же Контекст, который вызовет getSystemService()
, нет разницы.
Доказательство Вы можете проследить LayoutInflater, возвращенный getLayoutInflater()
, в LayoutInflater.from(), и вы можете видеть это просто ярлык для getSystemService()
из исходного кода:
public static LayoutInflater from(Context context) {
LayoutInflater LayoutInflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (LayoutInflater == null) {
throw new AssertionError("LayoutInflater not found.");
}
return LayoutInflater;
}
Ответ 2
Вот как вы определяете LayoutInflater.
LayoutInflater inflater = (LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
И getLayoutInflater()
просто дает "быстрый доступ к экземпляру LayoutInflater, который извлекается из его контекста" (из документации), возвращая LayoutInflater.
Аналогично, getSystemService(Context.LAYOUT_INFLATER_SERVICE)
используется для извлечения LayoutInflater для раздувания ресурсов макета в этом контексте.
Итак, на самом деле существует разница между NO.
Источник: Документация
Ответ 3
Существует по крайней мере одна ситуация, что только
getSystemService (Context.LAYOUT_INFLATER_SERVICE);
необходимо использовать вместо копии
getLayoutInflater
Эта ситуация находится в произвольном объектном классе. Например, у меня есть экземпляр класса call objectA. В объекте A я хочу раздуть представление на родительском представлении (произойдет в ArrayAdapter, который надувает настроенную строку в своем списке). В этом случае context.getLayoutInflater не работает, поскольку нет активности или окна, связанные с контекстом. Только getSystemService (Context.LAYOUT_INFLATER_SERVICE) подходит.
Ответ 4
НЕТ.
Нет никакой разницы.