Android之meta-data理解

           android:resource="resource specification"

           android:value="string" />

是提供给父组件使用的任意数据类型的补充数据。

可以嵌入在如下几种Component组件中:

 

 

 


在每种AndroidManifest的某个组件中申明时,其数量没有限制,最终都是保存在Bundle类型:PackageItemInfo.metaData中。

对于每种组件,渠道meta-dava value时,方法稍有差异:

    //在application应用元素。
    ApplicationInfo appInfo = getPackageManager()
            .getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
    appInfo.metaData.getString("meta_name");
    
    //在Activity应用元素。
    ActivityInfo info = this.getPackageManager()
            .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");
 
    //在service应用元素。
    ComponentName cn = new ComponentName(this, MetaDataService.class);
    ServiceInfo info = getPackageManager().getServiceInfo(cn, PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");
 
    //在receiver应用元素。
    ComponentName cn = new ComponentName(this, MetaDataReceiver.class);
    ActivityInfo info = context.getPackageManager().getReceiverInfo(cn, PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");

官方文档:http://developer.android.com/guide/topics/manifest/meta-data-element.html

你可能感兴趣的:(Android,Android)