在元数据中使用 android:value -- Android

The use of the android:value in metadata -- Android

我对元数据中值的使用感到困惑。当我提供 activity 的元数据时,它对我提供的 android:value 有什么作用。这个值有什么作用。

例子

`        <activity
            android:name=".SecondActivity"
            android:label="@string/activity2_name"
            android:parentActivityName=".MainActivity">
            <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".SecondActivity" />
        </activity>`

是的,我查看了 https://developer.android.com/guide/topics/manifest/meta-data-element 上元数据的文档。描述

The value assigned to the item.

对我来说没有意义。任何人都可以向我解释 android:value 在元数据中的用途,或者关于给它提供什么数据的规则。

为什么当我在清单中没有值时它会给我错误,例如。 Failed to finalize session : INSTALL_PARSE_FAILED_MANIFEST_MALFORMED:...<meta-data> requires an android:value or android:resource attribute

注意:我不是在为该错误/问题寻找特定于我的代码的答案。如果有的话,只是一个笼统的答案。

谢谢:)

元数据是一个名称-值对,因此android:value的含义取决于android:name。 对于您的示例:

<meta-data
   android:name="android.support.PARENT_ACTIVITY" //the activity has a parent activity 
   android:value=".SecondActivity" //the parent activity name is SecondActivity
/>

什么是父级 Activity 以及如何使用它,您可以参考 https://developer.android.com/training/implementing-navigation/ancestral#top_of_page

如果你只提供android:name而没有提供android:value,那是没有意义的。

@navylover 的回答是正确且有帮助的,但我想通过说来扩展它。可以通过"package name"."application name"."activity name"

找到父activity的值

这些可以在 build.gradle 文件下找到。 代码的示例如下:https://developer.android.com/studio/build/application-id.