一、android meta-data 使用详解

android:resource="resourcespecification"

android:value="string" />

这是该元素的基本结构。在AndroidManifest.xml中,元素可以作为子元素,被包含在、、和元素中,但不同的父元素,在应用时读取的方法也不同。

这个名字值是额外的任意的可以提供给父组件的数据。一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的 PackageItemInfo.metaData 字段。

一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo资源中的zoo名字。

另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。

当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。

android:name

元数据项的名字,为了保证这个名字是唯一的,采用java风格的命名规范。例如:

com.example.project.activity.fred

android:resource

资源的一个引用,指定给这个项的值是该资源的id。该id可以通过方法Bundle.getInt()来从meta-data中找到。

android:value

指定给这一项的值。可以作为值来指定的数据类型并且组件用来找回那些值的Bundle方法列在了下面的表中。

获得a meta-data 的值:

Android:name="foo"

android:value="@string/app_name"/>

ActivityInfo activityInfo=activity.getPackageManager()

.getActivityInfo(componentName, PackageManager.GET_META_DATA);

String foo =ai.metaData.getString("foo");

Toast.makeText(this, "meta:"+foo,1).show();

二、android meta-data在不用元素中使用

在AndroidManifest.xml中,元素可以作为子元素,被包含在、、和元素中,但不同的父元素,在应用时读取的方法也不同。

1 :在Activity的应用。

xml代码段:

android:name="myMsg"

android:value="hellomy activity">

java代码段:

ActivityInfo info=this.getPackageManager()

.getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);

String msg=info.metaData.getString("myMsg");

System.out.println("myMsg:"+msg);

2:在application的应用。

xml代码段:

android:value="hellomy application"

android:name="myMsg">

java代码段:

ApplicationInfo appInfo = this.getPackageManager()

.getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);

String msg=appInfo.metaData.getString("myMsg");

System.out.println("myMsg:"+msg);

3:在service的应用。

xml代码段:

android:value="hellomy service"

android:name="myMsg">

java代码段:

ComponentName cn=new ComponentName(this, MetaDataService.class);

ServiceInfo info=this.getPackageManager()

.getServiceInfo(cn, PackageManager.GET_META_DATA);

String msg=info.metaData.getString("myMsg");

System.out.println("myMsg:"+msg);

4: 在receiver的应用。

xml代码段:

android:value="hellomy receiver"

android:name="myMsg">

java代码段:

ComponentName cn=new ComponentName(context, MetaDataReceiver.class);

ActivityInfo info=context.getPackageManager()

.getReceiverInfo(cn, PackageManager.GET_META_DATA);

String msg=info.metaData.getString("myMsg");

System.out.println("myMsg:"+msg);

Android meta作用,Android中meta-data的使用相关推荐

  1. android intent-filter作用,Android中Intent-Filter的匹配规则是什么

    Android中Intent-Filter的匹配规则是什么 发布时间:2020-12-14 15:19:32 来源:亿速云 阅读:67 作者:Leah 今天就跟大家聊聊有关Android中Intent ...

  2. HTML中可以有多个meta吗,HTML5中meta标签有三个主要属性是什么

    HTML5中meta标签有三个主要属性是什么 发布时间:2020-10-22 13:46:11 来源:亿速云 阅读:88 作者:小新 小编给大家分享一下HTML5中meta标签有三个主要属性是什么,相 ...

  3. android aliasactivity作用,android activity-alias 的作用

    activity-alias是android里为了重复使用Activity而设计的. 当在Activity的onCreate()方法里,执行getIntent().getComponent().get ...

  4. android coreservice作用,android service重启

    首先,说一下思路,很简单,启动两个service检测对方,如果发现对方killed,立马启动就可以了.具体实现代码如下 1.先准备两个service,CoreService和DaemonService ...

  5. android padding作用,android:padding和android:layout_margin的区别

    简单点来说: android:padding是内边距,控件本身的内容与控件边缘的距离. android:layout_margin是外边距,控件与其他控件之间的距离. 下面以具体的例子来进行解释: 1 ...

  6. android contentprovider作用,Android ContentProvider基本使用

    一.基本概念: 1.ContentProvider为存储和获取数据提供了统一的接口: 2.使用ContentProvider可以在不同的应用程序之间共享数据: 3.Android为常见的一些数据提供了 ...

  7. android odex 作用,Android ROM中Odex文件的作用及介绍

    细心的网友可能发现Android的ROM中有很多odex文件,相对于 APK中的dex文件而言这个odex有什么作用呢? Android123提示大家,如果你仔细观察会发现文件名时一一对应的,同时那些 ...

  8. android handler作用,Android中Handler的作用

    * Handler的定义: * 主要接受子线程发送的数据, 并用此数据配合主线程更新UI.当应用程序启动时, * Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控 ...

  9. android 目录作用,Android中各级目录的作用说明

    android中各级目录的作用 1>目录结构 1.根目录: src目录---存放源代码文件 gen目录---adt插件生成的文件,(自动生成) assets目录---存放资源文件目录,不会在r. ...

最新文章

  1. jQuery MD5加密
  2. python class 属性是什么_python class 的属性
  3. [php入门] 4、HTML基础入门一篇概览
  4. html5学习之路_003
  5. 流量主系列|微信AI人脸转换小程序源码
  6. 浅析ReentrantLock重入锁
  7. 站在我个人的角度上来说。。。。。
  8. 【递归】n个数的全排列
  9. php at,PHP的at符号
  10. Registry Size 提示注册表容量不够!
  11. 【渝粤教育】广东开放大学 财会法规和职业道德 形成性考核 (26)
  12. github入门到上传本地项目(转)
  13. R语言大作业(四):上海市、东京 1997-2018 年GDP值分析
  14. matlab与螺旋桨,基于Matlab的船用螺旋桨计算机实时仿真及GUI设计
  15. 弱电工程综合布线施工过程控制
  16. Ubuntu系统上的ImageJ安装和卸载方法
  17. go1.15版本 mod 报An existing connection was forcibly closed by the remote host错误处理
  18. 电脑怎么用计算机打开指令,命令提示符怎么用 命令提示符快捷键打开使用技巧详解...
  19. 张云茹计算机,张云茹 - 重庆理工大学 - 药学与生物工程学院
  20. 2019年保研夏令营时间经验汇总

热门文章

  1. python观察日志(part6)--不可变的元祖
  2. 走近分形与混沌(part10)--用简单的规律来描述复杂的大自然
  3. 什么是常驻内存式的开发模式?_“直播+”模式下的直播系统开发需要注意什么问题?...
  4. 这个神奇的库,可以将数据平滑化并找到异常点
  5. SAP 电商云 Spartacus UI 的自定义 hamburger 菜单
  6. 关于 Node.js 参数 max-old-space-size
  7. SAP 电商云 Spartacus UI DeliveryComponent 的依赖设计
  8. 如何编写第一个 ngrx Effect 类
  9. 如何在Angular单元测试里,对class protected方法进行测试
  10. Angular jasmine fixture.detectChanges如何触发directive的set方法