meta-data的使用

meta-data键值对,所有的名值对被包装成Bundle供组件使用,因此使用方式同Bundle。metadata普通值由value属性给出,资源ID由resource属性给出。

定义meta-data:

            
            
            

相关资源文件:


//R:
public static int ic_launcher=0x7f020017;

使用:

//获取activity 的meta-data字段:string
        try {
            ActivityInfo itemInfo = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
            String tag = itemInfo.metaData.getString("pepelu_string_1");
        Log.d("pepelu","activity meta-data=" + tag);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }
    //获取int字段
    try {
        ActivityInfo info2=getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
        int picId=info2.metaData.getInt("pepelu_int_1");
        Log.d("pepelu","activity int ="+picId);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }</code></pre>

再其他组件中使用meta-data:

//在Activity应用元素。
        ActivityInfo info = this.getPackageManager().getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
        info.metaData.getString("meta_name");
    //在application应用<meta-data>元素。
    ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
    appInfo.metaData.getString("meta_name");

    //在service应用<meta-data>元素。
    ComponentName cn = new ComponentName(context,MetaDataService.class);
    ServiceInfo info = this.getPackageManager().getServiceInfo(cn,PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");

    //在receiver应用<meta-data>元素。
    ComponentName cn = new ComponentName(context,MetaDataReceiver.class);
    ActivityInfo info = context.getPackageManager().getReceiverInfo(cn,PackageManager.GET_META_DATA);
    info.metaData.getString("meta_name");</code></pre>

不能修改meta-data属性值

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...