在TabHost子活动中的onResume中,getParent()为null

时间:2013-09-02 09:06:51

标签: android android-activity nullpointerexception android-tabhost childactivity

我有一个tabhost小部件,它通过使用Intents来启动不同的活动。

TabSpec tab = mTabHost.newTabSpec("profile");
tab.setIndicator("profile");
Intent i3 = new Intent(ctx, ProfileActivity.class);
tab.setContent(i3);
mTabHost.addTab(tab);

所有孩子都被定义为嵌入:

    <activity android:exported="false" android:name="com.example.app.ProfileActivity" android:label="ProfileActivity view">
       <intent-filter>
          <category android:name="android.intent.category.EMBED"></category>
          <action android:name="android.intent.action.MAIN"></action>
       </intent-filter>
    </activity>

不幸的是,我可以在ProfileActivity onResume函数中看到偶尔发生的崩溃。

它在此行崩溃,因为getParent()返回null。

((MainActivity) getParent()).goToTab("splash")

这种情况并非一直发生 - 这是非常偶然的。

有人有这个问题吗?

1 个答案:

答案 0 :(得分:0)

正如文档所述:public final Activity getParent ()自:API级别1

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

您的活动是否是嵌入式儿童?如果是,那么它将返回父活动上下文,否则null