Android之meta-data使用

来源:互联网 发布:淘宝中老年女秋装新款 编辑:程序博客网 时间:2024/04/26 04:13
    元数据meta-data应用在manifest.xml文件中,主要用以为父组件提供配置数据。一个组件中可以包含有多个meta-data;
    其可被包含于<activity>、<activity-alias>、<service>、<receiver>中。
其基本使用语法为:

<meta-data    android:name="data_name"    android:value="@string/meta_data"    android:resource="@string/meta_data"/>
类似于一个键值对的形式,使用value则保存的是对应的String等值,使用resource则保存的是对应的资源Id值。


在四个组件中的使用及获取方式如下:
一、activity/activity-alias
1、在manifest中使用:

<activity     android:name=".MainActivity"     android:label="@string/app_name">     <intent-filter>         <action android:name="android.intent.action.MAIN"/>         <category android:name="android.intent.category.LAUNCHER"/>     </intent-filter>        <meta-data        android:name="data_name"        android:value="@string/meta_data"        /></activity>

2、在代码中获取数据:

    // 使用时注意加上try_catch    ActivityInfo actInfo = this.getPackageManager().getActivityInfo(             getComponentName(), PackageManager.GET_META_DATA);     String msg = actInfo.metaData.getString("data_name");     // 如果meta-data类型是资源ID,使用getInt获取资源ID即可

二、service

1、使用:

<service android:name=".MyService">    <meta-data        android:name="data_name"        android:value="@string/meta_data"/></service>

2、代码中获取数据:

    ComponentName cn = new ComponentName(this, MyService.class);     ServiceInfo serInfo = this.getPackageManager().getServiceInfo(cn,             PackageManager.GET_META_DATA);    String msg = serInfo.metaData.getString("data_name");

三、receiver

1、使用

<receiver android:name=".MyReceiver">    <meta-data        android:name="data_name"        android:value="@string/meta_data"/>     <intent-filter>        <action android:name="android.intent.action.PHONE_STATE"/>    </intent-filter></receiver>

2、代码中获取数据

    ComponentName cn = new ComponentName(this, MyReceiver.class);     ActivityInfo info = this.getPackageManager().getReceiverInfo(cn,                 PackageManager.GET_META_DATA);     String msg = info.metaData.getString("data_name"); 


四、application
1、使用

<application>    <meta-data        android:name="data_name"        android:value="@string/meta_data"/> </application>

2、代码中获取数据 

   ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(             getPackageName(), PackageManager.GET_META_DATA);     String msg = appInfo.metaData.getString("application_name");


0 0
原创粉丝点击