• 安卓 意图 intent


    • Android 意图(Intent) 理论详解_蚩尤后裔-CSDN博客
      • 意图:抽象描述,信息包,接口。
        用户/APP提交意图给系统,由系统具象实现。
        • 给系统Android 意图处理器
          实现:(合适意图的)活动
      • startActivity、startActivityForResult,startActivityForResult、bindService,sendBroadcast、sendOrderedBroadcast、sendStickyBroadcast。
      • Intent()+setAction(action)Intent(action)(+getAction)。
        action(动作)为Intent定义的常量,字符串形式。
        常量名-常量值。如ACTION_VIEW-android.intent.action.VIEW。
      • Data(数据)基于Action(方法)的参数
        可有多部分,各部分独立,可为元数据类型(如String)和/或URI。
        get/set+Data/Type(UIR/元数据)
        原页面有例子(播放、地图、浏览网址、电话、短信、编辑通讯录)
      • Category(类别),意图的可选部分,字符串形式,add/remove+Category、getCategories。
      • Flags(标记),类似Category。额外的,用于描述启动(Activity)的上下相互关系?
      • Extra(附加数据),键值对形式,基于Actrion的参数,put/getExtras(key,value)
    • Android意图-Intent详解_会飞的鱼的博客-CSDN博客
      • Intent属性过滤器
        action、data、category、typecomponent、extras为属性
        (除以上的setData()setDataAndType()
      • type用于描述组件能够处理的请求类型(即数据的MIME类型)
        setType()
        setDataAndType(),String类型。(上面介绍中归属到Data)
      • component描述Intent对象中所使用的组件类名字。(节点精灵中classname 通常指 具体要跳转的activity
        setComponent()setClass()
        可选,若空缺,则由组件管理服务依据action、data去寻找(具象化)适用的组件,相当于自动查询并调用(即,隐式意图,用于抽象通讯);否则,相当于手动调用(即,显式意图,用于透明的内部通讯)。
        mComponent=setClassNameComponentName(packageName,) / setClassComponentName(packageContext, class(非字符串,不适合交互))(最终都是获取component)
      • ComponentName
        Android四大组件(另一个是Intent)。含包名、类名(均为字符串)。
        packageNamemPackage=package.getPackageName()classNamemClass=class.getName()
      • extras。Bundle类(键值?)
      • 过滤器
        清单文件中:<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter>
        一个Activity中可以有一到多组过滤器,每组过滤器通常包括有action、category、type等属性信息。(貌似用于查找、匹配意图)
      • 构造方法。多种参数列表形式,如Intetn(o/action/action,uri/packageContext,class)
        显式即明确指定intent.setClass,或传入class=SecondActivity.class
        隐式即,依据action、category、type等由系统匹配。
        action节点的name是自己定义的<action android:name="xxx"/>(脱离接口常量,意味着外部无法抽象描述)
      • 使用Intent在组件间传递数据,设置、获取。
        putExtras(Intent src/Bundle extras/String name,XXX value)
        getIntentgetExtra
    • Android 意图(Intent)和过滤器(Filter) | 菜鸟教程
      • startActivity(Intent.createChooser(intent)),如,选择打开方式。
      • SearchManager貌似也是抽象的搜索,如,自动识别网址。
      • 组件-活动服务广播
      • startActivitystartService,新建或复用(基于组件的)活动sendBroadcast广播监听者
      • Android意图标准动作 
      • 隐式查找组件,给出的信息都是过滤器
      • setData()setType()setDataAndType()getData()getType()
      • Android意图标准类别Android意图标准附加数据
      • setComponent()setClass()setClassName()getComponent()
      • URI可以为如具体控件页面(界面)的地址,如通讯录ContactsContract.Contacts.CONTENT_URI
        如自动解析Uri.parse("http://..")Uri.parse("tel:..")
      • getIntent().getExtras().getString("keyName")
      • 安卓应用的根即activity——src/包名/MainActivity.java
      • res/layout/activity_main.xml布局文件res/values/strings/xmlAndroidManifest.xml
      • manifest 文件中使用 <intent-filter>标签用于活动服务广播,列出动作类别数据类型
        类似参数列表匹配?(但)每个元素(标签)之鞥你有一个URI和一个数据类型(元类型)。
        <activity><intent-filter>..</..></..>
        一个活动(activity)可以有多个活动(action)。
      • intent-filter(标签)中有<data android:scheme="http"/>描述(URI?)数据类型(模式?)。
    • Android 活动(Activity) | 菜鸟教程
      • 相当于窗口,具有用户界面的的单一屏幕。
      • onCreate()(回调)。onStartonResumeonPauseonStoponRestartonDestroy
      • 每个为应用程序所定义的活动都需要在AndroidManifest.xml中声明
        MainActivity的)意图过滤器标签中需要包含 MAIN 动作LAUNCHER 类别,否则应用程序的图标将不会出现在主屏幕的应用列表中
    • 零散/杂:
      • AXMLPrinter2查看,scheme(清单文件?)含activityintent-filter标签。
      • Android 概述 | 菜鸟教程
        API级别——API框架代号(整数)。
  • 相关阅读:
    ccache: error: Failed to ctreate temporary file for esp-idf/..../pwhash_scryptsalsa208sha256_nosse.c.obj: No Such file or directory
    electron+vue-cli3 打包报错 “Application entry file "background.js" does not exist”
    给按钮加loading效果
    java 的 try catch
    mac 的jmeter启动命令
    json转java对象 和 java对象转json 的方法 (一个类renturn的数据 映射到另外一个类接收)
    springboot 待学习的东西
    csv
    vue-cli 出现导航重复解决方法
    vue json展示组件
  • 原文地址:https://www.cnblogs.com/RobertL/p/14491167.html
Copyright © 2020-2023  润新知