安卓 意图 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框架代号(整数)。
原文地址:https://www.cnblogs.com/RobertL/p/14491167.html