当前位置: 首页 > news >正文

延吉网站建设depawowordpress 反代

延吉网站建设depawo,wordpress 反代,seo外贸推广,行唐县做网站电话一、概念 meta-data#xff1a;元数据、文件元数据。主要用来定义一些组件相关的配置值。 metadata是一组供父组件使用的名值对#xff08;name-value pair#xff09;#xff0c;一个组件元素可以包含任意数量的meta-data子元素。这些子元素的值存放在一个 Bundle 对象中…一、概念 meta-data元数据、文件元数据。主要用来定义一些组件相关的配置值。 metadata是一组供父组件使用的名值对name-value pair一个组件元素可以包含任意数量的meta-data子元素。这些子元素的值存放在一个 Bundle 对象中组件可以通过 PackageItemInfo.metaData 字段访问这些数据。AndroidManifests.xml下的meta-data则是对外界开放的是向系统注册的信息系统及外界是可以通过PackageInfo相关API获取到meta-data的信息。 1.1 语法 meta-data android:namestringandroid:resourceresource specificationandroid:valuestring /标签meta-data是提供组件额外的数据用的它本身就是一个键值对可以自定义名称和值。 它可以包含在以下组件当中activityactivity-aliasapplicationproviderreceiverservice 1.2 属性 android:name 数据项名称 为了确保名称的唯一性可使用 Java 风格的命名规则 — 如“com.example.project.activity.fred”。android:resource 资源 ID 对某个资源的引用。赋值为资源 ID 。 通过 Bundle.getInt() 方法可以从 meta-data Bundle 中读取该资源 ID。android:value 数据项值 赋给数据项的值。 下表列出了可赋予的数据类型、组件用 Bundle 对象获取该类值的方法 Bundle 方法类型getString()字符串值(/)作为转义字符—比如“\n”、“\uxxxxx”表示 Unicode 字符getInt()资源ID 整数值比如“100” 颜色值格式为“#rgb”、“#argb”、“#rrggbb”或“#aarrggbb”getBoolean()布尔型值“true”或“false”getFloat()浮点型值比如“1.23” 二、 使用说明 普通类型的值:通过 value 属性来给定。 资源 ID 的值:必须用 resource 属性来指定。 定义资源 string namex_keyresource key/string //R public static final int ic_launcher0x7f020000;定义metadata meta-dataandroid:namecom.xesam.key_1android:valuex_key / meta-dataandroid:namecom.xesam.key_2android:valuestring/x_key / meta-dataandroid:namecom.xesam.imgandroid:resourcedrawable/ic_launcher /!--保存的是对应的Id而不是保存的Id对应的资源--那么有 metadata.getString(com.xesam.key_1) x_key metadata.getString(com.xesam.key_2) resource key metadata.getInt(com.xesam.img) 0x7f020000强烈建议不要使用多个独立的 部分定义数据。 如果有比较复杂的数据需要和某个组件关联请把它们作为资源存储并用 resource 属性将资源 ID 告知组件。 2.1 使用问题 meta-dataandroid:namecom.xesam.key_1android:value000 /类似这样的值如果使用bundle.getString()的话是不起作用的因为Bundle中使用的是形如 return (String) o;在这里插入代码片代码获取一个StringValue值的但是在将metadata包装成bundle的时候000被解析成整数0 因此bundle.getString(“com.xesam.key_1”)返回的是(String)0显然java是不允许这样的因此最后得到的是null。 话说android为什么不是用String.valueOf()或者obj.toString()呢 为了避免这种情况 可以在形如000的字符串前面放个\0空字符强迫android按照字符串解析000。在资源文件中指定需要的值然后在metadata的value中引用此值。 三、 具体应用场景解析 展示了meta-data元素在activity、application 、service和receiver元素中的读取方法 之前提到Meta-data中的内容会被收集到一个Bundle对象中并且提供给组件的PackageItemInfo.metaData属性字段。可以通过调用PackageItemInfo 对象的metaData属性获得。而中ActivityInfo、ServiceInfo、 ApplicationInfo都是直接或间接继承自PackageItemInfo。 获取相应的PackageItemInfo值的时候要注意 1 AppliacationInfo需要传递包名 2 其他的传递ComponentName,所以需要构造一个 ComponentName对象而不是使用getComponentName()方法。 getComponentName()方法返回的是当前组件。可能获取Meta-data值得地方不在对应的组件中。 AndroidMainfest.xml ?xml version1.0 encodingutf-8? manifest xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsapplicationandroid:allowBackuptrueandroid:dataExtractionRulesxml/data_extraction_rulesandroid:fullBackupContentxml/backup_rulesandroid:iconmipmap/ic_launcherandroid:labelstring/app_nameandroid:roundIconmipmap/ic_launcher_roundandroid:supportsRtltrueandroid:themestyle/Theme.MyApplicationtools:targetApi31!--Application的MetaData的配置--meta-data android:nameapplicationMetadataKey android:valueapplicationMetadataValue/activity android:name.MainActivity android:exportedtrue!--注意targetSdkVersion大于等于SDK 31(也就是Android 12)时如果Activity配置了Intent-filter必须也同时配置exported属性否则编译失败。--!--Activity的MetaData的配置--meta-data android:nameactivityMetadataKey android:valueactivityMetadataValue/intent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activityreceiver android:name.MainReceiver!--Receiver的MetaData的配置--meta-data android:namereceiverMetadataKey android:valuereceiverMetadataValue//receiverservice android:name.MainService!--Service的MetaData的配置--meta-data android:nameserviceMetadataKey android:valueserviceMetadataValue//service/application/manifestMainActivity.java package com.example.myapplication;import android.content.ComponentName; import android.content.Context; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ServiceInfo; import android.os.Bundle; import android.view.View; import android.widget.TextView;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private TextView result;private Context mContext;private ComponentName componentName;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mContext this;componentName this.getComponentName();result (TextView) findViewById(R.id.result);findViewById(R.id.app).setOnClickListener(this);findViewById(R.id.act).setOnClickListener(this);findViewById(R.id.rec).setOnClickListener(this);findViewById(R.id.ser).setOnClickListener(this);}Overridepublic void onClick(View v) {if(v.getId() R.id.app){try {ApplicationInfo appInfo mContext.getPackageManager().getApplicationInfo(mContext.getPackageName(), PackageManager.GET_META_DATA);String appMV appInfo.metaData.getString(applicationMetadataKey);result.setText(appMV);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}else if(v.getId() R.id.act){try {ActivityInfo actInfo mContext.getPackageManager().getActivityInfo(componentName, PackageManager.GET_META_DATA);String actMV actInfo.metaData.getString(activityMetadataKey);result.setText(actMV);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}else if(v.getId() R.id.rec){ComponentName recCn new ComponentName(mContext, MainReceiver.class);try {ActivityInfo recInfo mContext.getPackageManager().getReceiverInfo(recCn, PackageManager.GET_META_DATA);String recMV recInfo.metaData.getString(receiverMetadataKey);result.setText(recMV);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}} else if (v.getId() R.id.ser) {ComponentName serCn new ComponentName(mContext, MainService.class);try {ServiceInfo serInfo mContext.getPackageManager().getServiceInfo(serCn, PackageManager.GET_META_DATA);String serMV serInfo.metaData.getString(serviceMetadataKey);result.setText(serMV);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}}} }转载链接 https://blog.csdn.net/xuangelouzhu/article/details/113661113
http://www.pierceye.com/news/728931/

相关文章:

  • 商城网站流量wordpress安装后做什么
  • 自己建网站要花多少钱wordpress采集发布接口
  • 个人网站做交易类的赚钱吗达人室内设计网论坛
  • 网站后台使用培训怎么样做微信公众号
  • 北京望京企业网站建设八佰yy影视
  • 在百度上做个网站需要多少钱创易网络
  • 网站建设神器帮人做网站犯法
  • 企业网站的特点是小程序开发文档微信小程序
  • 哈尔滨 建网站mvc做的网站如何发布访问
  • 江苏盐城网站开发百度快照首页
  • 中职网站建设课件青岛网站制作
  • 效果最好h5制作软件seo整站优化技术培训
  • 中国建设银行积分换购网站网站开发培训哪个好
  • 张家港网站建设培训wordpress电子报
  • 用dw制作学校网站教程网站优化排名方案
  • 手机图片网站模板工商营业执照网上申报
  • 网站建立的方式是什么网络推广培训哪里的
  • vue做网站首页做网站 上海
  • 建设一个商务网站的步骤做网站购买空间多少钱
  • 哈尔滨网站制作注册公司有什么风险
  • 自己做网站不如帮别人做运营网站开发计划怎么写
  • 飘雪影视在线观看免费完整台州网站排名优化价格
  • 网站制作要钱吗seo的培训网站哪里好
  • 图片类网站如何做优化装潢设计培训中心
  • 哪里做网站做得好宿迁网站建设sq918
  • 中企动力 网站建设那些网站是做俄罗斯鞋子
  • jsp怎么做购物网站建设营销型网站多少钱
  • 东莞网站设免费的网站程序哪里好
  • 网站主页用ps做免费网站建站有哪些
  • 锦州网站建设公司湘潭市高新建设局施工报建网站