Намерение: избежать утечек памяти при создании экземпляра Намерения с помощью getApplicationContext ()? - PullRequest
0 голосов
/ 11 мая 2019

В официальной документации (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));

1 Ответ

1 голос
/ 11 мая 2019

Неважно, контекст не «удерживается» намерением. Он просто используется для поиска (iirc, название пакета).

...