在onCreate方法中获取activityInfo元数据

Jul*_*ien 8 android metadata android-manifest oncreate

我需要从AndroidManifest.xml文件中检索一个值,存储为元数据:

<meta-data android:value="3" android:name="myInterestingValue" />
Run Code Online (Sandbox Code Playgroud)

在该onCreate方法中,我调用以下方法:

private Object getMetaData(String name) {
    try {
        ActivityInfo ai = getPackageManager().getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA);
        Bundle metaData = ai.metaData; 
        if(metaData == null) {
            debug("metaData is null. Unable to get meta data for " + name);
        }
        else {
            Object value = (Object)metaData.get(name);
            return value;
        }
    } catch (NameNotFoundException e) {
        e.printStackTrace();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

metaData总是空的.它是无法访问metaDataonCreate方法是什么?即活动尚未完全初始化.

小智 24

您将需要使用标志GET_ACTIVITIESGET_META_DATA.

ActivityInfo ai = getPackageManager()
        .getActivityInfo(this.getComponentName(), PackageManager.GET_META_DATA);
Run Code Online (Sandbox Code Playgroud)