Android Activity.getParent()总是返回null

9

我有这个小函数:

public Activity getRootActivity()
{
    Activity a = this;
    while (a.getParent() != null)
        a = a.getParent();
    return a;
}

但是a.getParent()总是返回null。无论我进入UI有多深,它都会返回null。

有没有人知道原因?

编辑

这是我如何启动活动(在其他活动中)的方式

startActivity(new Intent(this, activityname.class));

显然,这意味着我没有“嵌入”它们?如何嵌入它们?

正确。成为 null 并不是问题,只有 getParent() 返回 null。 - Peanut
2个回答

11

文档说:public final Activity getParent () 自 API 级别 1 开始

如果此视图是嵌套子级,则返回父活动。

您的活动是否为嵌套子级?


不应该有影响,因为最初 a != null,并且它不会因为 while 循环条件而变成 null。 - Mikita Belahlazau
1
我不太确定你所说的“嵌入式子代”是什么意思。 - Peanut
嵌入式活动的最常见情况是ActivityGroup的成员。 http://developer.android.com/reference/android/app/ActivityGroup.html - Hyperboreus
@Nikita。他正在每次循环中重新分配a。 - Hyperboreus

2

Activity#getParent():

如果此视图是嵌入式子项,则返回其父活动。

此活动是否为嵌入式子项?如果不是,则调用 getParent() 将返回 null。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接