標籤:
中繼資料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使用