Activty启动通过Action练习

今天看了看通过Action启动Activity的相关文章,对通过Action启动Activity的方法有了初步了解,写了个简单的demo练习了下,主要学习参考了以下两篇文章。

http://www.cnblogs.com/liushengjie/archive/2012/08/30/2663066.html

http://www.2cto.com/kf/201205/131448.html

下面说一说自己认为是重点的地方。


简单的说,要完成通过Action启动Activity的功能,需要建立带有相应Action的Intent以及在Manifest文件配置好filter来设置过滤条件。

由于文章用于博主自行笔记,故不再详细描述,详情还是参考之前发的链接,那里面说的很全。

在intent建立时我们可以给intent添加很多附加属性,这其中就包括action以及category等等。而关于这些附加属性其实还有很多更深的用途,我只是做了最浅最简单的使用。

在建立intent时附加的action一般以包名加大写字母的形式定义,如intent = new Intent("xxx.xxx.xxx.MIKU")博主自己试了一下其实定义成什么都行,不用非得包名,用包名可能是为了统一等等。

定义好action之后,就可以在Manifest文件里在指定的Activity下配置filter,里面设置action属性的名字一定要和定义的一致,不然就找不到了。

之后我们还可以添加附加信息如data,同样是用于过滤。

这个元素用于把数据规范添加到一个Intent过滤器中,数据规范能够只是数据类型(mimeType属性)、或数据位置标识(URI),也可以是数据类型和数据位置标识(URI)。一个URI(如下格式)被分成几个独立的属性来分别指定:

scheme://host:port/path or pathPrefix or pathPattern

一般常用的就是scheme和host两个,基本足以满足过滤条件了。

如intent intent = new Intent("LUKA");
      intent.setData(Uri.parse("miku://friday://"));
      startActivity(intent);

这是一个写在OnClick中的跳转事件,这个跳转会找Manifest中action为LUKA且data设置为scheme=miku,host=friday的Activity启动,如果没有就会报错。

这基本上就是通过action启动Activity的重点了,如果以后在做这种跳转发现没有实现时可以从这几处开始查看是不是配错了等等。


猜你喜欢

转载自blog.csdn.net/kongou/article/details/50038979