2

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

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

4

3 回答 3

7

这里的官方文档说:

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

现在,为了更清楚,让我们举个例子(来自 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);
} 

(摘自教程的片段)

up按钮使用与 ActionBar 主页图标相同的资源标识符,android.R.id.home。这个链接也可能与学习有关。它精美地解释了(连同图表)Up设备上Back按钮行为与按钮行为的区别。

在教程的“使用新的兼容性包类”标题下,示例很好地解释了它的使用。希望所有这些都有助于澄清这个概念。

于 2013-05-24T02:37:17.557 回答
1

不仅适用于后退按钮。

实时调频

当用户按下操作栏中的向上按钮时,系统读取该属性以确定应该启动哪个活动。系统还可以使用此信息将活动的回栈与TaskStackBuilder 合成

于 2013-05-24T02:17:35.583 回答
1

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

于 2013-05-24T02:22:23.560 回答