Android中<meta-data>的使用
2015-12-04 16:44
477 查看
转载地址:http://blog.sina.com.cn/s/blog_74b91ee00100yu0h.html
在AndroidManifest.xml中,元素可以作为子元素,被包含在、 、和元素中,但
不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
xml代码段:
java代码段:
一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的 PackageItemInfo.metaData 字段。一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo 资源中的zoo名字。另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。
java代码段:
java代码段:
java代码段:
在AndroidManifest.xml中,元素可以作为子元素,被包含在、 、和元素中,但
不同的父元素,在应用时读取的方法也不同。
1 :在Activity的应用。
xml代码段:
<activity...> <meta-data android:name="myMsg" android:value="hello my activity"></meta-data> </activity>
java代码段:
ActivityInfo info=this.getPackageManager() .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA); String msg=info.metaData.getString("myMsg"); System.out.println("myMsg:"+msg);
一个组件元素能够包含任意数量的meta-data子元素。它们所有的值都会被收集在Bundle对象中并且使其可以作为组件的 PackageItemInfo.metaData 字段。一般的值可以通过value属性来指定,但是如果要指定一个资源id作为一个值,那么就要用resource属性来代替。例如:下面的代码就是指定存储在@string/kangaroo 资源中的zoo名字。另一方面,利用resource属性将指定zoo的资源id号,并不是存储在资源中的资源值。当要给组件提供多个复杂的数据时,在这里并不推荐使用多重meta-data元素,推荐你存储这些数据在一个资源文件中并且利用resource属性来通知它的id给组件。
2:在application的应用。
xml代码段:<application...> <meta-data android:value="hello my application" android:name="myMsg"></meta-data> </application>
java代码段:
ApplicationInfo appInfo = this.getPackageManager() .getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); String msg=appInfo.metaData.getString("myMsg"); System.out.println("myMsg:"+msg);
3:在service的应用。
xml代码段:<service android:name="MetaDataService"> <meta-data android:value="hello my service" android:name="myMsg"></meta-data> </service>
java代码段:
ComponentName cn=new ComponentName(this, MetaDataService.class); ServiceInfo info=this.getPackageManager() .getServiceInfo(cn, PackageManager.GET_META_DATA); String msg=info.metaData.getString("myMsg"); System.out.println("myMsg:"+msg);
4: 在receiver的应用。
xml代码段:<receiver android:name="MetaDataReceiver"> <meta-data android:value="hello my receiver" android:name="myMsg"></meta-data> <intent-filter> <action android:name="android.intent.action.PHONE_STATE"></action> </intent-filter> </receiver>
java代码段:
ComponentName cn=new ComponentName(context, MetaDataReceiver.class); ActivityInfo info=context.getPackageManager() .getReceiverInfo(cn, PackageManager.GET_META_DATA); String msg=info.metaData.getString("myMsg"); System.out.println("myMsg:"+msg);
相关文章推荐
- Android自定义View----1. 自定义自绘控件
- Android 中实现5.0按钮水波纹反馈效果
- Android  draw canvas save restore saveLayer 学习
- android屏幕适配
- Android平台Camera实时滤镜实现方法探讨(六)--创建帧缓存对象(FBO)加速实时滤镜处理
- Android应用 中英文切换
- Android:用Handler实现异步处理功能
- android mediaplayer 实现歌曲边播放边下载
- android学习笔记(七):Handler消息传递机制
- android开发之软键盘控制
- Android之View基础总结(View的事件体系一)
- Android开发周报:弹幕源码开放送
- android launcher3拖放功能深入剖析
- 【转载】Android样式的开发:View Animation篇
- Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
- 给 Android 开发者的 RxJava 详解
- Android开发之Tools使用
- Android动画解析2-帧动画实现
- Android Studio的使用02-Can't resolve the symblo异常
- Android调用WebService(图文教程)