android - isAdded() 是否与 Android Fragment 中的 null != getActivity() 相同?

标签 android android-fragments android-activity

我想知道这两种方法是否会导致相同的结果,或者一种比另一种更好。

if(isAdded()){
//do something with activity since fragment is currently added to its activity.
}

if(null != getActivity()){
//do something with activity. Its not null
}

最佳答案

isAdded() 更适合在几乎所有情况下使用,原因有以下两个:

  1. isAdded() 如果 Fragment 当前已添加到其 Activity 。 getActivity() 只返回关联的 Activity 。在大多数情况下,这将返回相同的 bool 值,但为了安全起见最好

  2. 编写的代码更少

源代码:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.1.1_r1/android/app/Fragment.java/

/**
 * Return the Activity this fragment is currently associated with.
 */
final public Activity getActivity() {
    return mActivity;
}

/**
 * Return true if the fragment is currently added to its activity.
 */
final public boolean isAdded() {
    return mActivity != null && mAdded;
}

关于android - isAdded() 是否与 Android Fragment 中的 null != getActivity() 相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967586/

相关文章:

android - Gradle : Error retrieving parent for item: No resource found that matches the given name '@style/SomeTheme'

java - 如何将 ListView 项添加到整个其他 ListView

android - Android 中 fragment 的深层层次结构

Android - 视频重新启动或恢复

android - 动态添加 Opengl 形状

java - Android Studio Spinner 导致应用程序在打开之前崩溃

android - 将设备中的磁场 X、Y、Z 值转换为全局引用系

java - 如何将DEX反编译成Java源代码?

java - 如何在Android中获取应用程序数据目录

java - Android 自定义 facebook 按钮,图标无法正确加载