Хорошо, у меня есть класс LibApp
, это расширенный класс приложения и контекст хранилища:
public class LibApp extends Application {
private static LibApp instance;
private static Context context;
private AppModule appModule;
private AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
...
instance = this;
context = getApplicationContext();
...
}
public static LibApp getInstance() {
return instance;
}
public static Context getContext() {
return context;
}
...
}
Затем у меня есть Activity с фрагментом, и этот фрагмент содержит RecyclerView и Adapter к нему.Мой адаптер называется HomePacksAdapter
, и он прислушивается к контексту, чтобы создать ImageView.Итак, если я напишу:
HomePacksAdapter adapter = new HomePacksAdapter(getContext());
Все работает правильно.Но если я напишу:
HomePacksAdapter adapter = new HomePacksAdapter(LibApp.getContext());
Я запал на:
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
Не думаю, что я понимаю, что такое контекст, потому что я могуНе объясните, почему один контекст "лучше", чем другой.В моем определении Context - это объект, который предоставляет основные функции приложения, так что, контекст приложения не предоставляет те вещи, которые нужны моему адаптеру?