• Intent 意图


    功能intent主要是用于在activity和service组件间进行数据的传递,起着一个中间桥梁的通信作用

    类型主要分为

    1、显式intent:来启动指定的组件如从一个activity跳转到另外的activity并传递数据,

    1 Intent intent=new Intent(Activitymain.this,Activity01.class);
    2 startActivity(intent);

         也可以用setClass(Context,Class)来指定目标组件

    1 Intent intent=new Intent();
    2 intent.setClass(this,Activity01.class);
    3 this.startActivity(intent);

        还可以使用Component(ComponentName)来指定目标组件

    Component cn=new Component("com.android.myAction");
    Intent intent=new Intent();
    intent.setComponent(cn);
    this.startActivity(intent);

    2、 隐式intent:没有明确的指出目标组件,需要系统帮助寻找与intent的意图相匹配的组件,如打开某文件时跳出多个程序让你挑选。

          intentFilter(意图过滤器):把不需要的intent的过滤掉,找到相同的intent。

          方法:通过配置文件进行指定,通过intent-filter标签来完成

    <intent-filter>
         <action android:name="android.intent.action.MAIN"/>
         <category android:name="android.intent.category.LAUNCHER"/>//启动系统
    </intent-filter>

    action:代表该intent的所要完成的一个抽象动作,其实就是一个字符。

    category:为action增加额外的附加信息。

    如下程序研究:

    在主程序的代码为:

    1 bn.setOnClickListener(new OnClickListener(){
    2   Intent intent=new Intent();
    3   intent.setAction(ActionAttr.DASOU_ACTION);
    4   startActivity(intent);
    5 });

    上述代码中要创建常量

    final static String DASOU_ACTION="org.dasou.intent.action.DASOU_ACTION";

    上面代码中没有显式启动哪个Activity,则要在需要启动的Activity的配置文件中进行配置

    <intent-filter>
         <action android:name="org.dasou.intent.action.DASOU_ACTION">//
    <action android:name="dasou"/>//指定activity能响应action属性为dasou的intent
    <category android:name="android.intent.category.DEFAULT">//指定该action能响应category的属性为指定字符的intent
    </intent-filter>

    data:数据,指的是动作相关的数据的资源标识和数据的MIME类型。

    flags:标志,Intent对象有各种标记,很多都是用于指示Android系统如何启动Activity(如,Activity应该属于哪个任务),以及启动后如何处理(如,它是否属于最近的Activity列表)。    

     下一页:intent调用系统组件

  • 相关阅读:
    Sqli-labs Less-28a 绕过unions+select过滤 union注入
    eclipse安装freemarker-ide插件
    Eclipse调试时出现source not found的问题
    POJ 1509 Glass Beads 后缀自动机 模板 字符串的最小表示
    1028/3/7 被踩爆的省选模拟赛 30分
    字符串的模板 Manacher kmp ac自动机 后缀数组 后缀自动机
    2018/3/6 省选模拟赛 60分
    埃及分数 a* 搜索 知识点mark
    UOJ #35. 后缀排序 后缀数组 模板
    BZOJ 4566 JZYZOJ 1547 [haoi2016T5]找相同子串 后缀数组 并查集
  • 原文地址:https://www.cnblogs.com/DASOU/p/3148823.html
Copyright © 2020-2023  润新知