Разница между getContext () и requireContext () при использовании фрагментов - PullRequest
0 голосов
/ 25 февраля 2020

У меня возникли эти сомнения в течение длительного времени, когда я работаю с android фрагментами и мне нужно создать экземпляр Context, или мне нужно передать Context в качестве аргумента для другой функции, я могу выбрать используя для этого методы getContext () и requireContext (), я обычно предпочитаю использовать requireContext (), но только потому, что IDE (Android Studio) иногда показывает предупреждения при использовании getContext (). Но результат использования один или другой метод кажется одинаковым, независимо от того, что я выбираю.

Мой вопрос: есть ли разница между этими двумя методами? Если это так, какой из них лучше, или какой я должен использовать в каждом случае?

1 Ответ

6 голосов
/ 25 февраля 2020

getContext() возвращает значение NULL Context.

requireContext() возвращает ненулевое значение Context или выдает исключение, когда оно недоступно.

Если ваш код находится в фазе жизненного цикла, когда вы знаете, что ваш фрагмент прикреплен к в контексте, просто используйте requireContext(), чтобы получить Context, а также сохраняйте статистику радости от возможных проблем с NPE.

Если ваш код находится за пределами жизненного цикла обычного фрагмента (скажем, asyn c обратный вызов), вам может быть лучше использовать getContext(), проверяя его возвращаемое значение самостоятельно и продолжая использовать его только в том случае, если оно не равно нулю. встроен в систему типов языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...