В официальной документации (https://developer.android.com/reference/android/content/Intent.html#Intent(java.lang.String,%2520android.net.Uri для метода public Intent (Context packageContext, Class<?> cls
) мы можем прочитать:
PackageContext Context: Контекст пакета приложения, реализующего этот класс.
Этот ответ Stackoverflow Что такое packageContext в Intent # (Контекст packageContext, Classcls)? уточняет, что означает это определение:
Вы можете передать любой объект Context, полученный из любого из классов вашего приложения.Таким образом, вы можете использовать объект Activity, Service или вызвать функцию getApplicationContext () и передать возвращенный объект Context в конструктор Intent.
Даже если Intent
является чем-то очень живым,следует ли нам использовать getApplicationContext
вместо getActivity
, чтобы избежать утечек памяти (чтобы мы не сохранили ссылку на действие, которое можно было бы удалить из ОЗУ)?
Пример, приведенный вкласс фрагмента, вызываемый после создания действия, чтобы избежать NullPointerException
:
startActivity(new Intent(getActivity().getApplicationContext(), SplashScreen.class));