• 使用Intent启动组件


    android应用程序的三大组件——Activities、Services、Broadcast Receiver,通过消息触发,这个消息就是Intent,中文又翻译为"意图"(我感觉读着不顺畅,还是读英文)。我们能够通过Intent去启动三大组件,而且通过Intent携带数据到其它组件中。本文来看一下怎么使用Intent启动组件,以及Intent的过滤规则。

    Intent对象

    首先来看Intent对象中包括的成员。

    private String mAction;   //动作
    private Uri mData;          //数据
    private String mType;
    private String mPackage;   //包名
    private ComponentName mComponent;  //组件名 包括程序包名+类名,以及应用包名
    private int mFlags;            //标志
    private HashSet<String> mCategories;   //种类
    private Bundle mExtras;    //附加信息
    private Rect mSourceBounds;
    private Intent mSelector;
    private ClipData mClipData;

    看Intent的源代码,主要包括以上成员。

    Intent解析

    Intent解析有两种方式:显式解析和隐式解析。

    显式解析。我们直接传组件进入。打开这个指定的组件,比較简单,通常应用程序内使用。
    比方我们创建一个显式的Intent:

    Intent intent = new Intent(context, OtherActivity.class);

    隐式解析,没有指定详细的组件,通过规则去匹配组件。通经常使用于多个程序之间的互相调用比較多。我们使用隐式解析式。action、data(包含URI和数据类型)、category都必须有。比方我们启动浏览器去打开一个网址,intent能够这样创建:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://blog.isming.me"));

    上面没有填写category,创建Intent的时候会自己主动填写为default。

    等待补充吧。

    乱扯

    好吧,本来像。会写的非常长的,可是真正想写的时候,发现就这么简单。也没什么好写的。下次多看看源代码。再看有没有要补充的。就酱紫了!

    原文地址:http://blog.isming.me/blog/2014/06/15/use-intent-start-component/。欢迎转载,转载请注明出处。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    HTML5
    PHP
    eclipse项目导入到android studio
    Jpush教材
    Android性能优化典范
    Fresco好案例
    扫二维码关注微信号,回复“送礼包”就送超值大礼!
    Android开源项目大全之工具库
    android学习“知乎”建议
    C# Json时间类型的转换
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4644526.html
Copyright © 2020-2023  润新知