美文网首页
Android中<meta-data>的使用

Android中<meta-data>的使用

作者: Karma1026 | 来源:发表于2017-09-28 10:40 被阅读259次

AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity><application><service><receiver>元素中,但不同的父元素,在应用时读取的方法也不同。
<meta-data>元素用name-value对的格式给其父组件提供任意可选的数据。一个组件元素能够包含任意多个<meta-data>子元素,所有这些元素中定义的值会被收集到一个Bundle对象中,并且提供给组件的PackageItemInfo.metaData属性字段。通常值是通过其value属性来指定的。但是,也可以使用resource属性来代替,把一个资源ID跟值进行关联。

1.在application中应用

  • xml代码
<application>  
    <meta-data
            android:name="UMENG_CHANNEL"
            android:value="AA503"/> 
</application> 
  • Java代码获取值
ApplicationInfo appInfo = this.getPackageManager()  
                                  .getApplicationInfo(getPackageName(),  
                          PackageManager.GET_META_DATA);  
String msg=appInfo.metaData.getString("UMENG_CHANNEL");  

2.在activity中应用

  • xml代码
<activity>  
    <meta-data
            android:name="UMENG_CHANNEL"
            android:value="AA503"/> 
</activity> 
  • Java代码获取值
ActivityInfo info=this.getPackageManager()  
                          .getActivityInfo(getComponentName(),  
                          PackageManager.GET_META_DATA);  
String msg=info.metaData.getString("UMENG_CHANNEL");  

3.在service中应用

  • xml代码
<service android:name="MetaDataService">  
    <meta-data
            android:name="UMENG_CHANNEL"
            android:value="AA503"/> 
</service> 
  • Java代码获取值
ComponentName cn=new ComponentName(this, MetaDataService.class);  
ServiceInfo info=this.getPackageManager()  
                        .getServiceInfo(cn, PackageManager.GET_META_DATA);  
String msg=info.metaData.getString("UMENG_CHANNEL");  

4.在receiver使用

  • xml代码
<receiver android:name="MetaDataReceiver">  
     <meta-data
            android:name="UMENG_CHANNEL"
            android:value="AA503"/> 
      <intent-filter>  
          <action android:name="android.intent.action.PHONE_STATE"></action>  
      </intent-filter>  
 </receiver>  
  • Java代码获取值
ComponentName cn=new ComponentName(context, MetaDataReceiver.class);  
ActivityInfo info=context.getPackageManager()  
                             .getReceiverInfo(cn, PackageManager.GET_META_DATA);  
String msg=info.metaData.getString("myMsg");  

相关文章

网友评论

      本文标题:Android中<meta-data>的使用

      本文链接:https://www.haomeiwen.com/subject/qokmextx.html