股票场内基金交易,没时间盯盘?

   
使用优财助手电脑客户端记录下您的股票买入卖出数据,能帮您时刻盯盘,会根据您记录的未售出买入价计算上涨或下跌幅度,及时弹框通知您。想知道如何使用?快点击左方视频观看了解吧~~下载地址:http://youcaizhushou.com

介绍

Intent 的中文释义是“意图”,顾名思义它是 Android 提供的一种用于组件间传递消息的系统。系统会把 intent 发送给所有应用程序的符合条件的组件,收到 intent 的组件会根据其中包含的数据执行动作。

使用范围

Android 向我们提供了以下几个方法用于分派 intent:

而它们都是 ContextWrapper 及其子类的方法,也就是说平时只有 Activity 和 Service 才能够发送 intent,且只有 Activity / Service / BroadcastReceiver 可以接收到 intent。

显式与隐式

显式 Intent

在发送 intent 前需要调用 intent 的方法设置对象中包含的数据,这时调用以下方法可以指定接收 intent 的目标:

通过设置一个明确的组件类作为目标,发送 intent 的方式称为显式 Intent 或直接 Intent。

隐式 Intent

如果无法直接指定需要接收 intent 的那个类,那么 Android 会根据 intent 中设置好的 Action / Category / Type 来寻找合适的组件来处理 intent。

属性

Intent 类提供了修改其对象属性的方法,向这些方法提交的参数将决定 intent 会被哪些组件接收,以及希望接收者执行哪些动作:

Action

Action 代表 intent 希望接收者完成的动作。每个 intent 只能包含一个 action。它可以是 Intent 类的任意一个以 Action_ 开头的常量,例如 Intent.ACTIONVIEW 和 Intent.ACTIONCALL,也可以是其他任何字符串,只要保证这个值能被接收到 intent 的组件接受。自定义的 Action 最好使用基于 Java 包的命名方式,例如 “android.intent.action.CALL” 这样格式的字符串。

Category

Category 则用于添加附加的类别信息。如果我们使用 addCategory() 向 intent 中添加了 Intent.CATEGORYAPPBROWSER 和 Intent.CATEGORYAPPMUSIC 两个常量,那么组件要想接收到这个 intent,它的 Intent Filter(意图过滤器)中就必须至少有这两个值。

Data

Data 存储的是需要传递给接收者的数据,格式为 Uri,常见的使用方式如下:

运行上面的代码会拨打10086,其中冒号前的字符指定了数据类型为 tel。

Type

当没有设置 Data 的值时,Type 设置的值才会有效,这时系统将 Type 的值作为数据的类型。

Extra

这个属性的类型为 Bundle,类似 Map 类,可以存入多对键值,通常用于 Activity 之间进行数据交换。

Intent Filter

能够为其他组件的动作请求提供服务的组件想要接收 intent,就需要在其 manifest 节点内添加一个 intent-filter 标签。通过为其添加合适的子元素可以达到过滤收到的 intent 的效果, intent 只有通过了 intent-filter 的以下三种过滤才会被该组件接收到。

动作过滤

intent-filter 应该包含至少一个 action 子标签,否则就无法收到任何 intent。如果 intent 中没有设置 action,那么只要 intent-filter 包含有任何 action 子标签,该 intent 就可以通过动作过滤。

类别过滤

类别过滤与动作过滤类似,不同的是没有 category 子标签的 intent-filter 仍可以接收到没有设置 category 的 intent。

数据过滤

数据过滤使用 data 标签指定希望接受的 intent 的数据URI和数据类型。

URI被分成三部分来进行匹配:scheme、 authority 和 path

data 元素通过设置属性来进一步过滤 intent。这些属性是可选的,但也是相互依赖的。如果没有给 Intent 过滤器指定 scheme 属性,那么所有其他的 URI 属性都会被忽略。如果没有给过滤器指定 host 属性,那么 port 属性和所有的路径属性都会被忽略。

包含在同一个 intent-filter 元素中所有的 data 元素只会对这个过滤器起作用,例如:

等同于

android:host

这个属性用户定义 URI 授权的主机部分,除非给过滤器也指定了 data 元素的 scheme 属性,否则这个属性没有意义。

android:mimeType

这个属性用于设定数据的 MIME 类型,如:image/jpeg 或 audio/mpeg4-generic。其子类型可用(*)通配符来代替,指示能够跟任何子类型匹配。

android:path

android:pathPrefix

android:pathPattern

以上三个属性用于指定 URI 的路径部分。Path 属性指定一个完整的路径,这个路径会跟 Intent 对象中的路径进行匹配。PathPrefix 属性只指定了部分路径,它会跟 Intent 对象中的路径初始部分匹配。pathPattern 属性指定一个要跟 Intent 对象中的路径进行匹配的完整路径,但是这个路径中可以包含下列通配符:

  1. 星号(*)通配符,路径中的*星号代表任意多个星号之前的那个字符,如 ba*b,可跟bab、baab、baaab、baaaab 等字符串匹配。
  2. 点跟星号的组合(.*)通配符,它可以跟任意字符串进行匹配,如 .*html,可以跟 abchhtml、chtml、html、dssf.html 等字符串匹配。

因为系统读取 XML 中的字符串时,会把 ”\” 符号作为强制转义字符,因此就需要两次转义。例如,符号 ”*” 要被写成 ”\*” ,符号 ”\” 要被写成 ”\\”。这与 Java 代码中的写法基本相同。有关这三种模式的更多信息,请看 PatternMatcher 类中的 PATTERNLITERAL、PATTERNPREFIX、PATTERNSIMPLEGLOB 的说明。

android:port

这个属性用于定义 URI 授权的端口部分。只有给过滤器指定了 scheme 和 host 属性时,这个属性才有意义。

android:scheme

这个属性用于设定 URI 的 scheme 部分。它是指定 URI 设置的最基本的属性,至少要给过滤器设置一个 scheme 属性,否则,其他 URI 属性就没有意义。scheme属性值没有 ”:” 符号结尾(如:“http”,而不是“http:”),如果过滤器有一个数据类型(设置了 mimeType 属性),但没有设置 scheme 属性,那么系统就会假定 scheme 是 “content:” 和 “file:”

注意:在 Android 框架中,以上大部分属性匹配时大小写敏感的,跟RFC格式不一样。因此,要始终使用小写字母来指定属性的值。

参考

作者学习 Android 开发时日尚浅,如有错误欢迎指正,本文撰写过程中参考了以下文章:

Intent filter 关于Action、Category属性详解—附带实例源码

AndroidManifest.xml文件详解(data)

   

想获得去掉 5 元限制的证券账户吗?

证券交易股票基金的佣金,不足 5 元会按照 5 元收取。比如交易 1000 元的股票,按照普遍的证券佣金手续费率万 2.5,其交易佣金为 0.25 元,小于 5 元,实际会收取佣金 5 元,买卖两次需要支付 10 元佣金成本,1% 的利润就这样没了。

如果您想去掉最低交易佣金 5 元限制,使用微信扫描左边小程序二维码,访问微信小程序「优财助手」,点击底部菜单「福利」,阅读文章「通过优财开证券账户无最低交易佣金 5 元限制」,按照文章步骤操作即可获得免 5 元证券账户,股票基金交易手续费率万 2.5。

请注意,一定要按照文章描述严格操作,如错误开户是无法获得免 5 元证券账户的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注