我什么时候应该从片段中使用getActivity()和getContext()?

时间:2017-03-31 14:07:39

标签: android android-fragments android-context

我想知道何时应该从片段中使用getActivity()和getContext()?为什么不总是使用getActivity。是否存在getActivity失败的情况?

1 个答案:

答案 0 :(得分:3)

不确定是否存在getActivityContext()方法,但就getContext()getActivity()之间的差异而言,除了您从通话中获得的类型之外,确实没有其他方法。从源v4片段来看,它只是一种方便的方法,可以在返回之前将Context强制转换为ActivityFragmentActivity,而且它与普通的Fragment类相似。 / p>

/**
 * Return the {@link Context} this fragment is currently associated with.
 */
public Context getContext() {
    return mHost == null ? null : mHost.getContext();
}

/**
 * Return the {@link FragmentActivity} this fragment is currently associated with.
 * May return {@code null} if the fragment is associated with a {@link Context}
 * instead.
 */
final public FragmentActivity getActivity() {
    return mHost == null ? null : (FragmentActivity) mHost.getActivity();
}

此外,活动是一个上下文,所以没有太大区别。