设置清单文件中PARENT_ACTIVITY的功能是什么?

时间:2013-05-24 02:10:01

标签: android

在清单文件中设置PARENT_ACTIVITY提供了哪些功能? 我玩它,从我的经验来看,它似乎没有影响后退按钮功能(但我可能做错了)。 有谁知道这个属性会影响哪些功能?

更新@shoerat: TFM非常模糊,正如我所说,它似乎不会影响我的后退按钮。我从我的一个活动中删除了父属性并运行了我的应用程序,后退按钮仍然像以前一样工作。所以这让我感到好奇,超出了手册所提供的范围。

3 个答案:

答案 0 :(得分:7)

官方文件here说:

android:parentActivityName属性在应用程序的逻辑层次结构中声明此活动的父活动的名称。系统使用此值来实现默认导航行为,例如Android 4.1(API级别16)及更高版本上的Up navigation

现在,为了让它更清晰,我们举一个例子(来自android文档):

<application ... >
    ...
    <activity
        android:name="com.example.myfirstapp.SecondActivity"
        android:label="@string/title_activity_display_message"
        android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />
    </activity>
</application>

在上面的示例中,使用元数据元素将MainActivity声明为SecondActivity的父级。现在,在SecondActivity的班级中,当用户按下向上按钮时,NavUtils可用于导航到MainActivity(父活动):

@Override
public boolean onOptionsItemSelected(android.view.MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
} 

(摘自tutorial

up按钮使用与ActionBar主页图标android.R.id.home相同的资源标识符。这link也可能与研究有关。它精美地解释了(以及图表)设备上Up按钮与Back按钮行为的不同。

在教程中的“Use the New Compatibility Package Classes”标题下,这些示例很好地解释了它的用法。希望这一切都有助于清除这个概念。

答案 1 :(得分:1)

后退按钮不是

RTFM

系统读取此属性以确定当使用按下操作栏中的“向上”按钮时应启动哪个活动。系统还可以使用此信息来合成TaskStackBuilder的后备堆栈。

答案 2 :(得分:1)

设置为在NavUtils中访问,其中包含任何活动的方法getParentActivityName,并为实现推荐的Android UI导航模式的应用程序提供帮助功能