在AndroidManifest.xml中,<meta-data>元素可以作为子元素,被包含在<activity>、<application>、<service>和<receiver>元素中,但
不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
   xml代码段:
   <activity...>
      <meta-data android:name="myMsg" android:value="hellomyactivity"></meta-data>
   </activity>
   
   java代码段:
   ActivityInfoinfo=this.getPackageManager()
                         .getActivityInfo(getComponentName(),
                         PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);
 
一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的PackageItemInfo.metaData字段。一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo资源中的zoo名字。<meta-data android:name="zoo"android:value="@string/kangaroo"/>另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。<meta-dataandroid:name="zoo" android:resource="@string/kangaroo"/>当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。

2:在application的应用。
   xml代码段:
  <application...>
      <meta-data android:value="hello my application"android:name="myMsg"></meta-data>
  </application>
  
   java代码段:
   ApplicationInfo appInfo = this.getPackageManager()
                                 .getApplicationInfo(getPackageName(),
                         PackageManager.GET_META_DATA);
    Stringmsg=appInfo.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);
3:在service的应用。
   xml代码段:
  <serviceandroid:name="MetaDataService">
     <meta-data android:value="hello my service"android:name="myMsg"></meta-data>
  </service>
   java代码段:
   ComponentName cn=newComponentName(this, MetaDataService.class);
   ServiceInfoinfo=this.getPackageManager()
                       .getServiceInfo(cn, PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);
4: 在receiver的应用。
   xml代码段:
   <receiverandroid:name="MetaDataReceiver">
           <meta-data android:value="hello my receiver"android:name="myMsg"></meta-data>
           <intent-filter>
               <actionandroid:name="android.intent.action.PHONE_STATE"></action>
           </intent-filter>
   </receiver>
  java代码段:
   ComponentName cn=new ComponentName(context,MetaDataReceiver.class);
    ActivityInfoinfo=context.getPackageManager()
                            .getReceiverInfo(cn, PackageManager.GET_META_DATA);
    Stringmsg=info.metaData.getString("myMsg");
   System.out.println("myMsg:"+msg);

Android  <meta-data>的更多相关文章

  1. 【记】研究Sharding-JDBC遇到的一个异常(Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table structure for `t`. The different meta data of actual tables are as follows)

    一.异常信息 Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table str ...

  2. android读取data下得数据

    拥有Root权限的情况 adb shell su cd  /data/data/com.package 然后就可以直接读取 没有Root的情况 adb shell run-as com.package ...

  3. Android: Receiving Data from the Send Intent,自己app注册系统分享

    当用户在系统的专辑,点击共享时.通过我们自己的app.分享此图片. 1.注册 主要是在AndroidManifest.xml中,对activity注冊Intent-filter.如: <acti ...

  4. Android打开/data/目录以及导出文件

    打开logcat和和file Explorer Tools-->Android-->Android Device Monitor 如果右侧没有出现,Windows-->Show Vi ...

  5. Android App data write as file data with synchronous Demo

    package com.android.utils; import java.io.File; import java.io.IOException; import java.io.RandomAcc ...

  6. [Android exception] /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_shared.so: has text relocations

    java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.tongyan.tutelage-1/lib/arm/libstlport_s ...

  7. A JavaScript library for reading EXIF meta data from image files.

    exif-js/exif-js: JavaScript library for reading EXIF image metadata https://github.com/exif-js/exif- ...

  8. Android下/data/data/<package_name>/files读写权限

    今天将更新模块拿到android上面测试的时候,发现在创建writablepath.."upd/"目录的时候出现Permission Denied提示BTW:我使用的是lfs来创建 ...

  9. Android Saving Data(二)

    Saving File android读写文件的形式和普通的java IO的方式并没有什么不同,唯一有所限制的是当我们创建文件的时候不能够在像javaSE那样随意了.一般android读写文件有两种形 ...

  10. 《BI那点儿事》META DATA(元数据)

    关于数据仓库的数据,指在数据仓库建设过程中所产生的有关数据源定义,目标定义,转换规则等相关的关键数据.同时元数据还包含关于数据含义的商业信息,所有这些信息都应当妥善保存,并很好地管理.为数据仓库的发展 ...

随机推荐

  1. Java Web(十一) 分页功能的实现

    虽然现在有很多好用的框架,对分页进行支持,很简单的就把分页的效果做出来,但是如果自己手写是一个怎样的流程的?今天就来说说它,手动实现分页效果. --WH 一.分页的思路 首先我们得知道写分页代码时的思 ...

  2. vivado中设置多线程编译

    VIVADO中一个run编译时支持的线程数如下表:(综合时一般是2线程) Place Route Windows默认 2 2 Linux默认 4 4 Windows开启maxThreads=8 4 4 ...

  3. C#中对于Enum类型的遍历

    假设有enum类型定义为MyEnumType 则可以这样遍历:  //遍历 枚举类型中的所有成员 foreach (MyEnumType type in Enum.GetValues(typeof(M ...

  4. scala future

    https://docs.scala-lang.org/overviews/core/futures.html https://docs.scala-lang.org/overviews/index. ...

  5. Linux/CentOS关闭图形界面(X-window)和启用图形界面命令

    1.在图像界面关闭x window:1.1 shell中运行 init 3  进入文本模式,同时会关闭相关的服务(Xserver 肯定关闭)1.2 Alt+Ctrl+F1~F6到字符界面,root登陆 ...

  6. 关于CentOS 6下Hadoop占用系统态CPU高的处理办法【转】

    一次不经意发现Hadoop的系统态CPU使用率很高,然后百度一下居然是个已知问题. RHEL6优化了内存申请的效率,而且在某些场景下对KVM的性能有明显提升:http://www.Linux-kvm. ...

  7. 对dump的文件进行状态统计

    1.jps -lvm  查出pid 2.jstack  pid >1.dump 3.grep java.lang.Thread.State 1.dump| awk '{print $2$3$4$ ...

  8. FIDDLER的使用方法及技巧总结(连载五)FIDDLER的一些故障排除

    五.FIDDLER的一些故障排除

  9. ElasticSearch5.3安装head插件及连接ElasticSearch

    1. 安装插件head # 去github上下载head git clone git://github.com/mobz/elasticsearch-head.git # 由于head基于nodejs ...

  10. 如何在 Django 中保证并发的数据一致性

    1. 关于锁 1.1 乐观锁 乐观锁的出发点是,同一条数据很少会因为并发修改而产生冲突,适用于读多写少的场景,用以提高吞吐量. 实现方式,读取一个字段,执行处理逻辑,当需要更新数据时,再次检查该字段是 ...