Android之meta-data使用

來源:互聯網
上載者:User

標籤:

    中繼資料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-alias1、在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"); 


四、application1、使用

<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");


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android之meta-data使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.