精华内容
下载资源
问答
  • Android 意图

    2014-03-02 12:39:37
    博文链接:... ...Android 隐式意图和显示意图 1. Intent  Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,  Intent提供了一种通用的消息系统,

    博文链接:http://hi.baidu.com/283255144/item/c941fd4fed7212fb1f19bc6c




    Android 隐式意图和显示意图

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


    2. 显式意图、隐式意图
        Intent可以划分成显式意图和隐式意图。
        显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
            如: 在 MainActicity 中打开一个新的 Acticity -- OtherActivity
                1. Intent intent = new Intent();
                2. intent.setComponent(new ComponentName(MainActivity.this, OtherActivity.class));
                3. 第二行代码可以更换为:intent.setClass(MainActivity.this, OtherActivity.class);
                    4. 也可以使用构造器来指定组件: Intent intent = new Intent(MainActivity.this, OtherActivity.class)
                三种 “显式意图” 指定方式等价    
        隐式意图:没有明确指定组件名的Intent为隐式意图。
              Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(data: URI和数据类型)找到最合适的组件来处理这个意图
              例如拨打电话的意图:
                      Uri uri = Uri.parse("tel:" + phoneCode);
                    Intent intent = new Intent(Intent.ACTION_CALL, uri);
        
        
        对于隐式意图,Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(意图过滤器)其实就是用来匹配隐式Intent的,当一个意图对象被一个意图过滤器进行匹配测试时,只有三个方面会被参考到:动作、数据(URI以及数据类型)和类别。
        
        动作测试(Action test)
          一个意图对象只能指定一个动作名称,而一个过滤器可能列举多个动作名称。如果意图对象或过滤器没有指定任何动作,结果将如下:
            + 如果过滤器没有指定任何动作,那么将阻塞所有的意图,因此所有的意图都会测试失败。没有意图能够通过这个过滤器。 
                <intent-filter><!-- 空的 --></intent-filter>
            + 另一方面,只要过滤器包含至少一个动作,一个没有指定动作的意图对象自动通过这个测试
        
        类别测试(Category test)
            对于一个能够通过类别匹配测试的意图,意图对象中的类别必须匹配过滤器中的类别。这个过滤器可以列举另外的类别,但它不能遗漏在这个意图中的任何类别。
            原则上一个没有类别的意图对象应该总能够通过匹配测试,而不管过滤器里有什么。大部分情况下这个是对的。
            但有一个例外,Android把所有传给startActivity()的隐式意图当作他们包含至少一个类别:"android.intent.category.DEFAULT" (CATEGORY_DEFAULT常量)。 
            因此自定义 Activity 的时候,不要以为光定义一个 action 就够了。这样用 startActivity() 来激活这个 Activity 的时候将一直报错。
            原因就是,他内部要求去匹配 android.intent.category.DEFAULT 这个类别。
            
            因此,想要接收隐式意图的活动必须在它们的意图过滤器中包含"android.intent.category.DEFAULT"。
                (带"android.intent.action.MAIN"和"android.intent.category.LAUNCHER"设置的过滤器是例外)
        
        数据测试(Data test)
            当一个意图对象中的URI被用来和一个过滤器中的URI比较时,比较的是URI的各个组成部分。
            例如,如果过滤器仅指定了一个scheme,所有该scheme的URIs都能够和这个过滤器相匹配;
                如果过滤器指定了一个scheme、主机名但没有路经部分,所有具有相同scheme和主机名的URIs都可以和这个过滤器相匹配,而不管它们的路经;
                如果过滤器指定了一个scheme、主机名和路经,只有具有相同scheme、主机名和路经的URIs才可以和这个过滤器相匹配。
                当然,一个过滤器中的路径规格可以包含通配符,这样只需要部分匹配即可。
            数据测试同时比较意图对象和过滤器中指定的URI和数据类型。规则如下:
            a. 一个既不包含URI也不包含数据类型的意图对象仅在过滤器也同样没有指定任何URIs和数据类型的情况下才能通过测试。
            b. 一个包含URI但没有数据类型的意图对象仅在它的URI和一个同样没有指定数据类型的过滤器里的URI匹配时才能通过测试。
               这通常发生在类似于mailto:和tel:这样的URIs上:它们并不引用实际数据。
            c. 一个包含数据类型但不包含URI的意图对象仅在这个过滤器列举了同样的数据类型而且也没有指定一个URI的情况下才能通过测试。
            d. 一个同时包含URI和数据类型(或者可从URI推断出数据类型)的意图对象可以通过测试,如果它的类型和过滤器中列举的类型相匹配的话。
               如果它的URI和这个过滤器中的一个URI相匹配或者它有一个内容content:或者文件file: URI而且这个过滤器没有指定一个URI,那么它也能通过测试。
               换句话说,一个组件被假定为支持content:和file: 数据如果它的过滤器仅列举了一个数据类型。


    3. 使用隐式意图
        有两个意图的过滤器都匹配了某此请求,android 会出现一个列表菜单,供用户选择

    虽然说是转载,但还是补充点。

    隐式意图:在功能清单列表的XML中配置代码如下

    为某个Activity配置特点的隐式意图

    - <activity android:name=".OtherActivity" android:label="@string/app_name">

    - <intent-filter>

      <action android:name="cn.itcast.lao.li" /> 

      <action android:name="cn.itcast.lao.zhang" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

      <category android:name="cn.itcast.category.li" /> 

      <data android:scheme="itcast" android:host="www.itcast.cn" android:path="/person" /> 

      <data android:mimeType="image/gif" /> 

      </intent-filter>

      </activity>

    public void onClick(View v) 

    {

    Intent intent = new Intent();

    intent.setAction("cn.itcast.lao.li");

    //同时设置隐式调用的数据格式和类型格式

    //如果没有类型格可以直接写成intent.setData(Uri.Parse("itcast://www.itcast.cn/person"))

    //因为设置了mimeType,又设置了setData的时候mimeType它自动会清setData的数据。

    intent.setDataAndType(Uri.parse("itcast://www.itcast.cn/person"), "image/gif");

    startActivity(intent);

    }


    展开全文
  • 如果您的Android Things设备安装了多个应用程序,则所有应用程序都在清单中具有此意图过滤器(< DP8过去需要已弃用的IOT_LAUNCHER) 然后默认情况下您的应用程序不会启动,而是显示Intent Chooser对话框,系统将等待...

    如果您的Android Things设备安装了多个应用程序,则所有应用程序都在清单中具有此意图过滤器

    (< DP8过去需要已弃用的IOT_LAUNCHER) 然后默认情况下您的应用程序不会启动,而是显示Intent Chooser对话框,系统将等待用户输入以选择要运行的应用程序. (这种情况发生了或者你没有插入实际的显示器.如果你没有显示器,它可能会显示为设备只是悬挂.) 我在这里编写了一个脚本:https://gist.github.com/blundell/7c0c3bb17898b28fe8122b0dc230af50将卸载所有具有上述Intent Filter的应用程序,以便您可以重新启动并且只安装了1个应用程序 – 因此该应用程序将在启动时启动.

    b293538492cf5aefd0c9ceb9e7cb5685.png

    使用最新版本的AndroidThings,IntentChooser将不会再显示,但是当安装的其中一个应用程序被选中打开而其他应用程序没有打开时,问题可能会持续存在.

    展开全文
  • Android 意图(Intent)和过滤器(Filter)Android意图是一个要执行的操作的抽象描述。他可以通过startActivity来启动一个活动,broadcastIntent来发送逛吧到任何对它感兴趣的个黄渤接受器组件,startService(Intent)...

    Android 意图(Intent)和过滤器(Filter)

    Android意图

    是一个要执行的操作的抽象描述。他可以通过startActivity来启动一个活动,broadcastIntent来发送逛吧到任何对它感兴趣的个黄渤接受器组件,startService(Intent)或者binService(Intent, ServiceConnection,int)来与后台服务通讯。
    意图本身(一个Intent对象)是一个被动的数据结构,保存着要执行操作的抽象描述。
    以下是动作/数据的一些实例:

    下面是res/layout/activity_main.xml文件的内容:

    运行应用程序

    以下是src/cn.uprogrammer.intentfilter/MainActivity.java的内容:

    下面是res/layout/activity_main.xml 的内容:

    运行意图实例
    展开全文
  • 1 意图意图过滤器Intents and Intent Filters 2 意图对象Intent Objects 3 意图解析Intent Resolution 4 过滤器与安全Filters and security
  • 意图监视器 一个基于 xposed 的工具,可以监控安卓意图 它挂钩了一些方法,如 startActivity sendBroadCast startService ...
  • 一:隐式意图和显示意图概念 备注: 1. Intent 和 Intent 过滤器。 二:隐式意图和显示意图代码实例 1:显示意图:指定要启动的应用组件 ①:从当前类MainActivity.class跳转到SecondActivity.class中去 当前活动窗体:...

    一:隐式意图和显示意图概念

    1:意图
    在这里插入图片描述
    2:显示意图和隐式意图
    在这里插入图片描述
    3:IntentFilter
    在这里插入图片描述
    【acton属性】
    在这里插入图片描述
    【data属性】
    在这里插入图片描述
    【category属性】
    在这里插入图片描述

    二:显示意图和隐式意图的启动

    1:显示意图:指定要启动的应用组件

    ①:从当前类MainActivity.class跳转到SecondActivity.class中去

    在这里插入图片描述

    ②:在SecondActivity.class中通过 setContentView(R.layout.activity_second);启动activity_second.xml

    在这里插入图片描述
    2:隐式意图:通过指定一组动作或数据开启一个Activity。

    setAction();
    参数:指定action操作名称
    返回值:返回相同的意图对象
    在这里插入图片描述
    ①:在清单文件中设置action的name和相应属性
    在这里插入图片描述

      <activity android:name=".ThireActivity">
                <intent-filter>
                    <action android:name="android.intent.action.ThireActivity" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
    

    ②:通过以下二条属性实现从activity_main.xml到activity_thire,xml的跳转

          <action android:name="android.intent.action.ThireActivity" />
            <category android:name="android.intent.category.DEFAULT" />
    

    三:数据的传递

    1:发送Data的二种方式

    1. 通过putExtra方法进行传递(直接把数据传递过去)
    2. 通过putExtras()进行传(常常通过Bundle传递数据)

    在这里插入图片描述
    在这里插入图片描述
    备注:少量数据通过putExtra()传递数据,大量数据通过putExtras()进行传递。
    putExtra()中可传入的参数
    在这里插入图片描述

    putExtras()可传入的参数
    在这里插入图片描述
    Bundle.put…可传入参数·
    在这里插入图片描述

    2:接受Data的二种方式

    1. 通过getInter();获取Intent对象,再通过get…方法获取数据(对应上面发送数据1)
    2. 通过getInter();获取Intent对象,再通过intent.getExtras()获取Bundle对象,再通过get…方法获取数据(对应上面发送数据2)

    在这里插入图片描述

    四:数据回传

    在这里插入图片描述
    在这里插入图片描述
    接受:Activity
    在这里插入图片描述
    发送:Activity
    在这里插入图片描述


    项目完整代码
    点击查看吧

    展开全文
  • Android 意图(Intent)和过滤器(Filter)Android 意图(Intent)和过滤器(Filter)Android意图是⼀个要执⾏的操作的抽象描述。它可以通过 startActivity 来启动⼀个活动,broadcastIntent 来发送⼴播到 何对它感兴趣的⼴...
  • android意图-intent

    2013-10-09 12:17:46
    android意图intent使用: 1、不带参数跳转: Intent intent = new Intent(Activity1.this,Activity2.class); startActivity(intent); 2、带参数跳转: Bundle方式: Intent intent = new Intent(Activity1.this,...
  • android意图跳转

    2015-06-02 17:49:42
    自己写的一个关于app启动画面和intent意图小例子
  • 包含一个kotlin属性委托的集合,用于管理android意图和捆绑附加组件。
  • Android意图-Intent详解

    千次阅读 2017-07-24 23:26:46
    Android意图-Intent详解Intent是Android应用里各组件之间通信的重要方式,一个Activity通过Intent来表达自己的意图—想要启动哪个组件(activity,service,broadcasts)。一、Intent启动不同组件的方法:1.Activity...
  • 显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。   隐式意图;不指明调用的名称,...
  • Android意图调用系统电子邮件客户端发送邮件 Android Intent,携带意图的对象是从一个组件到应用程序内或应用程序外的另一个组件的消息。 您并不总是需要从头开始构建电子邮件应用程序,大多数 android 设备都带有...
  • Android 意图(Intent) 理论详解

    千次阅读 2018-10-12 15:37:51
    Android 意图(Intent)是一个要执行操作的抽象描述,是 Android 四大组件间之间的枢纽,通信的桥梁,比如可以通过: startActivity(Intent)、startActivityForResult(Intent):启动一个Activity startService...
  • Android意图内置动作

    2019-12-23 23:57:52
    以下为安卓意图内置动作,可以用隐式调用来调用这些功能: ACTION_ALL_APPS: 列出所有已安装程序 ACTION_ANSWER: 处理来电 ACTION_BUG_REPORT: 报告BUG ACTION_CALL: 打开一个电话拨号程序, 使用Intent的数据...
  • Android 意图(Intent)

    2020-04-05 11:40:15
    写在前面 Android中,意图(Intent)是一个消息传递对象,活动、服务和广播接收器之间调用和消息传递都是通过意图实现的。意图的三个基本的用途为:启动Activity、启动Service和传递广播。 ...
  • BIG阳意图是一种告诉Android您想做什么的方法。换句话说,您描述您的意图意图可用于向Android系统发出已发生特定事件的信号。Android中的其他组件可以通过意图过滤器注册到此事件。以下是两种意图1,明确意图用于...
  • Android 意图合集

    2016-09-08 13:58:55
    1 打開摄像头拍照画面 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")...
  • 项目下载链接:点击下载吧 1:项目框架 2:后端布局代码 ①:MainActivity.class ... import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; impor...
  • Android意图[结构]和意图过滤器

    千次阅读 2016-08-26 22:41:40
    我们都知道Android 应用框架中的4大基本组件分别是:  活动----绘制一个屏幕的用户界面,响应用户交互  服务----在后台运行,执行耗时操作或远程过程调用  广播接收器----响应系统级(或自定义)的广播通知  ...
  • Android意图机制之Intent

    2016-02-02 09:06:29
    Intent译为意图,即安卓中的意图机制。在Android中可以理解为不同组件之间通信的媒介或者信使。Intent类是Android组件连接的核心,一个Intent对象是对某个将要进行的操作所进行的封装的抽象描述。它也用于Android...
  • 意图Android应用程序的基本组成部分之一。 如果您想成为专业的Android程序员,则需要掌握Intent。 最好的方法是参加我们的新短期课程《 Kotlin Android基础知识:意图》 。 您将学到什么 在本课程中, Annapurna...
  • android意图传参、返回结果
  • Android意图是一个要执行的操作的抽象描述。它可以通过 startActivity 来启动一个活动,broadcastIntent 来发送广播到任何对它感兴趣的广播接受器组件,startService(Intent) 或者bindService(Intent, ...
  • Android 意图意图过滤器(一)

    千次阅读 2012-06-01 10:02:15
    一个应用程序的三个核心组件-活动,服务和广播接收器是通过消息即意图(Intents)来激活的。Intent消息传送是相同或不同应用中组件运行时晚绑定的一种机制。意图本身,一个意图对象,是一个包含被执行操作抽象描述的...
  • http://www.cnblogs.com/bavariama/p/3368515.html  原文 1 Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。 ...在Android的2.0版本之后,有了一个函数来帮我们

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,935
精华内容 14,374
关键字:

安卓意图