- MainActivity.this: указывает объект MainActivity, который обычно используется во внутреннем классе для обозначения внешнего this.Если this используется непосредственно во внутреннем классе, он указывает на сам внутренний класс. Поскольку MainActivity наследует Activity, а Activity наследует Context, его также можно использовать для предоставления контекста Activity;
- this: Указывает текущий объект; вообще говоря, в каком классе он вызывается, он указывает на объект.
- getContext(): это метод, предоставляемый в классе View. Его можно вызывать только в классе, наследующем View. Он возвращает
контекст действия, в котором запущено текущее представление. - getActivity(): получить объект Activity, к которому прикреплен фрагмент. Причина, по которой getActivity() во фрагменте не рекомендуется, заключается в следующем: этот метод вернет действие, прикрепленное к текущему фрагменту.Когда жизненный цикл фрагмента заканчивается и уничтожается, getActivity() возвращает значение null, поэтому обратите внимание на оценку значения null или захват при использовании исключения нулевого указателя. GetActivity обычно используется для получения контекста во фрагменте.
Глобальное приложение:
public class Application extends Application {
private static Application instance;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public static Application getInstance(){
return instance;
}
}
Использование метода getContext непосредственно во фрагменте подвержено исключениям нулевого указателя, переопределяя метод getContext.
private Activity activity;
public Context getContext() {
activity = getActivity();
if (activity == null) {
return HSApplication.getInstance();
}
return activity;
}
Контекст диалога не может использовать глобальное приложение
Intent intent=new Intent(); intent.setClass(this, 目标activity.class); startActivity(intent)