• android-意图Intent


    Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递 Intent 来执行动作和产生事件。使用 Intent 可以激活 Android 应用的三个核心组件:活动(Activity)、服务(Service)和广播接收器(BroadcastReceiver)。

    意图
    显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
    Intent intent = new Intent();
    1. intent.setComponent(new ComponentName(MainActivity.this, OtherActivity.class));
    2. intent.setClass(MainActivity.this, OtherActivity.class);
    3. Intent intent = new Intent(MainActivity.this,OtherActivity.class);

    隐式意图:没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(data: URI和数据类型)找到最合适的组件来处理这个意图

    Uri data = Uri.parse("tel:" + phoneCode);
    Intent intent = new Intent(Intent.ACTION_CALL, data);

    在启动的ativity的onCreate中获取intent使用getIntent()方法,获取action使用intent.getAction(),获取data使用intent.getData()。

    意图启动

    启动不返回结果的意图,使用startActivity(intent)。

    启动返回结果的意图,使用startActivityForResult(intent, SHOW_SUBACTIVITY),SHOW_SUBACTIVITY是请求码,用来在接收回调结果的onActivityResult(int requestCode, int resultCode, Intent data)方法中区分打开的子activity的回调。

    若要传递责任给次最佳匹配的组件,则在onCreate中获取intent后使用startNextMatchingActivity(intent)。

    意图过滤器

    如果意图过滤器包含了指定的动作,或者没有指定动作,那么就认为动作匹配。

    意图过滤器必须包含待解析的意图中的所有category,没有指定category的意图过滤器只能和没有任何category的意图相匹配。需要注意的是,Android把所有传给startActivity()的隐式意图当作他们包含至少一个类别:"android.intent.category.DEFAULT" (CATEGORY_DEFAULT常量)。

    意图的数据URI的每一个部分都和意图过滤器的data标签进行比较,没有指定数据值的意图过滤器将会和所有的意图数据值匹配。

    Intent类中的静态字符串常量

    action:

    ACTION_ANSWER 打开一个处理来电的活动

    ACTION_CALL 打开一个电话拨号程序,并立即使用意图URI所提供的号码拨打一个电话

    ACTION_DELETE 启动一个活动,允许删除意图的URI中指定的数据

    ACTION_DIAL 打开一个拨号程序,拨打意图URI所提供的号码

    ACTION_EDIT 请求可以编辑指定的意图URI中的数据的活动

    ACTION_INSERT 打开一个能在意图URI指定的光标出插入新条目的活动

    ACTION_PICK 启动一个子活动,它可以让你从意图URI指定的内容提供器中选择一个条目

    ACTION_SEARCH 启动用于执行搜索的活动

    ACTION_SENDTO 启动一个活动来向意图URI所指定的联系人发送一条消息

    ACTION_SEND 启动一个活动,发送意图中指定的数据

    ACTION_VIEW 通用动作,根据所提供的数据的URI模式来处理视图请求

    ACTION_WEB_SEARCH 根据意图URI提供的文本执行Web搜索

    category:

    ALTERNATIVE 把动作指定为在特定数据类型上执行的默认动作的可选项

    SELECTED_ALERNATIVE 使用动作帮助填充上下文菜单

    BROWSABLE 浏览器内部可用的动作

    DEFAULT 使一个组件成为意图过滤器内指定的数据类型的默认动作

    GADGET 活动可以嵌入到另一个活动中执行

    HOME 不指定action时,意图则作为本地主屏幕的可选项

    LAUNCHER 出现在应用程序的启动器中

  • 相关阅读:
    Sql Server 跨服务器连接
    ASCII码与16进制的互相转换(表)
    c#多线程 Invoke方法的使用
    登陆时验证码的制作(asp.net)
    jQ&js给label
    IT行业的一些专业术语
    html div 加边框样式
    分布式技术 memcached
    分布式技术 webservice
    MVC 绑定 下拉框数据
  • 原文地址:https://www.cnblogs.com/mingfung-liu/p/4502829.html
Copyright © 2020-2023  润新知