为什么在我的片段中,getActivity()有效但mContext.getApplicationContext()不起作用?
mDobPickerDialog = new DatePickerDialog(getActivity(), new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
mDobEditText.setText(mDateFormatter.format(newDate.getTime()));
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
我的mContext被声明并初始化为:
private Context mContext;
public DisplayProfileFragment(Context context) {
super();
mContext = context;
}
getActivity()返回与片段关联的Activity。
http://developer.android.com/reference/android/app/Fragment.html#getActivity()
getApplicationContext()返回全局Application上下文。
http://developer.android.com/reference/android/content/Context.html#getApplicationContext()
至于为什么getApplicationContext()在提供的代码中不起作用,因为它不起作用。您正在针对当前活动创建一个对话框,为此需要活动上下文,应将应用程序上下文用于接收器之类的功能,应在销毁应用程序而不是在销毁活动时销毁功能。
getApplicationContext()和getActivity()与Android中的区别是什么?
在上下文上使用方法时,我总是搞不清楚该使用哪种方法以及何时使用,即getActivity()还是getApplicationContext()。请帮我解决这个。提前谢了。
、、和“”有什么区别? 虽然这是一个简单的问题,但我无法理解它们之间的基本区别。如果可能的话,请给出一些简单的例子。
我对所有这些用法感到非常困惑,我们应该在哪里使用它们。