<meta-data>
直译为“元数据”,该标签可为<activity>、<activity-alias>、<application>、<provider>、<receiver>、<service>等组件提供附加数据项。
组件元素可以包含任意数量的<meta-data>子元素。系统将meta-data配置的数据存储于一个Bundle对象中,可以通过PackageItemInfo.metaData字段获取。
首先在AndroidManifest.xml 文件中对应你需要加meta-data属性配置的加上自己需要的信息
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="app.meta.attr.data1" android:value="appVersion"></meta-data>
<meta-data android:name="app.meta.attr.data2" android:value="10001"></meta-data>
<meta-data android:name="app.meta.attr.data3" android:value="@string/app_name"></meta-data>
<meta-data android:name="app.meta.attr.data4" android:resource="@id/layout_webview_url"></meta-data>
</activity>
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
ActivityInfo activityInfo = getPackageManager().getActivityInfo(new ComponentName(this, MainActivity.class), PackageManager.GET_META_DATA);
Bundle bundle = activityInfo.metaData;
String data1 = bundle.getString("app.meta.attr.data1");//字符串类型
int data2 = bundle.getInt("app.meta.attr.data2"); //数值类型
String data3 = bundle.getString("app.meta.attr.data3");//获取资源配置内容信息
int data4 = bundle.getInt("app.meta.attr.data4");//获取资源配置内容对应ID
Toast.makeText(getApplication(),"data1:"+data1+",data2:"+data2+",data3:"+data3+",data4:"+data4,Toast.LENGTH_LONG).show();
} catch (Exception e) {
e.printStackTrace();
}
}