Android-自定义meta-data扩展数据

标签<meta-data>是提供组件额外的数据用的,它本身就是一个键值对,可以自定义名称和值。它可以包含在以下组件当中:

<activity>
<activity-alias>
<application>
<provider>
<receiver>

  • 在Activity的应用。
    xml代码段:
   <activity...> 
       <meta-data android:name="myMsg" android:value="hello my activity"></meta-data> 
    </activity> 

java代码段:

   ActivityInfo info=this.getPackageManager() 
                          .getActivityInfo(getComponentName(), 
                          PackageManager.GET_META_DATA); 
    String msg=info.metaData.getString("myMsg"); 
    System.out.println("myMsg:"+msg); 
  • 在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); 
    String msg=appInfo.metaData.getString("myMsg"); 
    System.out.println("myMsg:"+msg); 
  • 在service的应用。
    xml代码段:
   <service android:name="MetaDataService"> 
      <meta-data android:value="hello my service" android:name="myMsg"></meta-data> 
   </service> 

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); 
  • 在receiver的应用。
    xml代码段:
    <receiver android:name="MetaDataReceiver"> 
            <meta-data android:value="hello my receiver" android:name="myMsg"></meta-data> 
            <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"); 
    System.out.println("myMsg:"+msg);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 5,772评论 2 51
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,574评论 0 17
  • 2018年Android 面试题 IT开发仔2018-03-21 15:26:46 在这“金三银四”的季节,我准备...
    王培921223阅读 2,553评论 3 24
  • 犹豫了很久还是决定要加入日更的群体,但在开始前,对于日更我要有一个明确的定义。很多人说的很对,不要为了日更而日更,...
    尽清欢阅读 496评论 3 4
  • 睡不着的人生很容易陷入思考。贪恋无知,更不如说是欲望,终究没得到自己想要的。Everything in this ...
    麾毛杆儿阅读 554评论 0 0