美文网首页
Android-自定义meta-data扩展数据

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

作者: 风之去向_c305 | 来源:发表于2019-03-15 12:33 被阅读0次

    标签<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);
    

    相关文章

      网友评论

          本文标题:Android-自定义meta-data扩展数据

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