Ответ 1
user853583 предложение хорошее, но если вам нужен доступ к контексту внутри фрагмента, вы должны использовать getActivity().getApplicationContext()
Вам следует избегать передачи активности как контекста, когда это возможно, поскольку это может привести к утечкам памяти - некоторый объект будет удерживать эту активность после вызова onDestroy() и не будет собираться мусором.
Сказав это, бывают случаи, когда вам нужно передать активность как контекст - например: для адаптеров списка
Еще две вещи:
-
потому что фрагмент прикреплен и отсоединен от действия, иногда
getActivity()
возвращает null - вы можете безопасно его называть внутри определенных методов жизненного цикла, когда вы знаете, что активность активна, например:onResume()
-
если ваш фрагмент не сохраняет свой экземпляр, то есть уничтожается при изменении ориентации, обязательно отмените регистрацию своего приемника в своем фрагменте, например, внутри
onPause()
илиonDestroy()