Intent 详细讲解

java Intent的应用小例子 学习Android基本应用的小程序,实现了基本的乘法功能,涉及到Activity及Intent的应用,适合初学者练笔。 立即下载

1,显示匹配(Explicit):

1
2
3
4
5
6
7
8
9
10
11
12
13
public  TestB extents Activity
{
  .........
};
  public  class  Test extends  Activity
{
      ......
      public  void  switchActivity()
      {
             Intent i = new  Intent(Test. this , TestB. class );
             this .startActivity(i);
      }
}

2,隐式匹配(Implicit):
   
  
隐式匹配,首先要匹配Intent的几项值:Action, Category, Data/Type,Component。如果填写了Componet就是上例中的Test.class)这就形成了显示匹配。所以此部分只讲前几种匹配。匹配规则为最大匹配规则,

1,如果你填写了Action,如果有一个程序的Manifest.xml中的某一个Activity的IntentFilter段中定义了包含了相同的Action那么这个Intent就与这个目标Action匹配,如果这个Filter段中没有定义Type,Category,那么这个Activity就匹配了。但是如果手机中有两个以上的程序匹配,那么就会弹出一个对话可框来提示说明。
Action的值在Android中有很多预定义,如果你想直接转到你自己定义的Intent接收者,你可以在接收者的IntentFilter中加入一个自定义的Action值(同时要设定Category值为"android.intent.category.DEFAULT"),在你的Intent中设定该值为Intent的Action,就直接能跳转到你自己的Intent接收者中。因为这个Action在系统中是唯一的。


2,data/type,你可以用Uri来做为data,比如Uri uri = Uri.parse(http://www.google.com);
Intent i = new Intent(Intent.ACTION_VIEW,uri);手机的Intent分发过程中,会根据http://www.google.com 的scheme判断出数据类型type
手机的Brower则能匹配它,在Brower的Manifest.xml中的IntenFilter中首先有ACTION_VIEW Action,也能处理http:的type,

3,至于分类Category,一般不要去在Intent中设置它,如果你写Intent的接收者,就在Manifest.xml的Activity的IntentFilter中包含android.category.DEFAULT,这样所有不设置Category(Intent.addCategory(String c);)的Intent都会与这个Category匹配。

4,extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。

用 Intent 激活电话拨号程序

  这里使用一个Intent打开电话拨号程序,Intent的行为是ACTION_DIAL,同时在Intent中传递被呼叫人的电话号码。

  在用户界面中加入一个Button按钮,编辑res/layout/main.xml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version= "1.0"  encoding= "utf-8" ?>
<LinearLayout
android:orientation= "vertical"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent"
>
<Button
android:id = "@+id/button_id"
android:layout_width= "fill_parent"
android:layout_height= "wrap_content"
android:text= "@string/button"
/>
</LinearLayout><span style= "font-family: verdana, 'courier new'; font-size: 14pt;" ><span style= "white-space: normal;" >
</span></span>

我们把Button的id设置为button_id, 同时将Button显示在界面上的文字设置为res/string.xml/下的Button,打开res/string.xml,把button的内容设置为“拨号”:

1
2
3
4
5
6
<?xml version= "1.0"  encoding= "utf-8" ?>
<resources>
<string name= "button" >拨号</string>
<string name= "app_name" >TinyDialer</string>
</resources><span style= "font-family: verdana, 'courier new'; font-size: 14pt;" ><span style= "white-space: normal;" >
</span></span>

创建TinyDialer的Activity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public  class  TinyDialer extends  Activity {
  /** Called when the Activity is first created. */
  @Override
  public  void  onCreate(Bundle savedInstanceState) {
     super .onCreate(savedInstanceState);
     setContentView(R.layout.main);
 
     final  Button button = (Button) findViewById(R.id.button_id);
     button.setOnClickListener( new  Button.OnClickListener() {
       @Override
       public  void  onClick(View b) {
          Intent i = new  Intent(Intent.ACTION_DIAL,
                       Uri.parse( "tel://13800138000" ));
          startActivity(i);
       }
     });
  }
}


用Intent调用系统中经常被用到的组件

1,web浏览器

Uri uri= Uri.parse("http://kuikui.javaeye.com");

returnIt = new Intent(Intent.ACTION_VIEW, uri);

2,地图

Uri mapUri = Uri.parse("geo:38.899533,-77.036476");

returnIt = new Intent(Intent.ACTION_VIEW, mapUri);

3,调拨打电话界面

Uri telUri = Uri.parse("tel:100861");

returnIt = new Intent(Intent.ACTION_DIAL, telUri);

4,直接拨打电话

Uri callUri = Uri.parse("tel:100861");

returnIt = new Intent(Intent.ACTION_CALL, callUri);

5,卸载

Uri uninstallUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);

6,安装

Uri installUri = Uri.fromParts("package", "xxx", null);

returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);

7,播放

Uri playUri = Uri.parse("file:///sdcard/download/everything.mp3");

returnIt = new Intent(Intent.ACTION_VIEW, playUri);

8,掉用发邮件

Uri emailUri = Uri.parse("mailto:shenrenkui@gmail.com");

returnIt = new Intent(Intent.ACTION_SENDTO, emailUri);

9,发邮件

returnIt = new Intent(Intent.ACTION_SEND);

String[] tos = { "shenrenkui@gmail.com" };

String[] ccs = { "shenrenkui@gmail.com" };

returnIt.putExtra(Intent.EXTRA_EMAIL, tos);

returnIt.putExtra(Intent.EXTRA_CC, ccs);

returnIt.putExtra(Intent.EXTRA_TEXT, "body");

returnIt.putExtra(Intent.EXTRA_SUBJECT, "subject");

returnIt.setType("message/rfc882");

Intent.createChooser(returnIt, "Choose Email Client");

10,发短信

Uri smsUri = Uri.parse("tel:100861");

returnIt = new Intent(Intent.ACTION_VIEW, smsUri);

returnIt.putExtra("sms_body", "shenrenkui");

returnIt.setType("vnd.android-dir/mms-sms");

11,直接发邮件

Uri smsToUri = Uri.parse("smsto://100861");

returnIt = new Intent(Intent.ACTION_SENDTO, smsToUri);

returnIt.putExtra("sms_body", "shenrenkui");

12,发彩信

Uri mmsUri = Uri.parse("content://media/external/images/media/23");

returnIt = new Intent(Intent.ACTION_SEND);

returnIt.putExtra("sms_body", "shenrenkui");

returnIt.putExtra(Intent.EXTRA_STREAM, mmsUri);

returnIt.setType("image/png");

从 0 到 1,实战 Power BI 电商销售可视化看板全流程 本文详细介绍了从零开始使用Power BI构建电商销售可视化看板的全流程,涵盖数据准备、建模、可视化设计及高级功能应用。通过实战案例展示如何将复杂销售数据转化为直观图表,帮助电商从业者快速掌握销售趋势、热销产品和用户画像等关键信息,提升数据分析效率。 阅读详情

相关推荐

C语言实战:最小二乘法在传感器数据校准中的应用(附完整代码)

本文详细介绍了如何使用C语言实现最小二乘法,对传感器数据进行线性校准。通过模拟带噪声的传感器数据,手把手演示了从核心算法实现、参数计算到效果验证的完整流程,并提供了可直接编译运行的完整源码,帮助嵌入式开发者解决传感器数据不准的常见问题,提升系统测量精度。

weixin_28025327的博客 516

java intent用法_Intent的一些用法

Intent用法实例1.无参数Activity跳转Java代码 Intentit=newIntent(Activity.Main.this,Activity2.class);startActivity(it);Intent it = new Intent(Activity.Main.this, Activity2.class);startActivity(it);2.向下一个Activ...

weixin_39844901的博客 3393

深入解析国家企业征信系统瑞数6vmp算法逆向实战

本文深入解析了国家企业征信系统所采用的双层防护机制,重点聚焦于瑞数6代vmp算法的逆向实战。文章详细拆解了从加速乐521状态码的绕过,到瑞数412挑战的核心算法还原过程,提供了通过动态Hook、日志分析进行算法逆向,并用Python实现自动化请求链的完整技术方案,旨在为安全研究与技术学习提供参考。

yellow的专栏 612

java intent用法_Intent的简单使用

主要实现Intent之间值得转递,如从AActivity到BActivity之间传一个数值,一个实体类,一个集合类下面代码只要是实现对startActivityForResult的使用,用ABC 3个类来实现的,从A到B,再B到C。现在的需求就是A到B到C,当C完成某个操作时,结束当前界面并转递数据给A。如需求中的添加购物地址,添加卡号。如下是3个类的代码packagecom.item.jieji...

weixin_26766559的博客 2270

Windows游戏多开检测实战:5种技术原理与破解方法详解(附C++代码)

本文深入解析了Windows游戏多开检测的5种核心技术原理,包括进程枚举、互斥体、信号量、窗口及文件映射检测,并详细探讨了对应的破解方法。通过分析这些基于进程和内核对象的攻防机制,为开发者与逆向爱好者提供了从底层理解Windows系统进程管理的实战视角,并附有核心C++代码示例。

weixin_29315091的博客 243

Docker启动安装nacos(详情讲解,全网最细)

docker安装nacos保姆级教程

ilvjiale的博客 8万+

Android开发——Intent的介绍

Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

532

FastDDS之共享内存

transport层负责为DDS用户数据收发和服务发现提供通信。包含UDP,TCP,SHM。

u010378559的博客 3088

java intent用法_handler 和 intent用法

一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI.解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地较大的一个...

weixin_39564386的博客 229

2025年情感分析(SA)综述——论文阅读报告

2025年情感分析(SA)综述——论文阅读报告

Samdy_L的博客 2087

2小时用Trae搭建全功能CMS系统

在前文中,我们使用Trae从零搭建了一个用户文档站点,仅用不到2小时就实现了用户注册登录和文档的增删改查功能,且无需编写任何代码。本节我们将在此基础上,构建一个CMS后台管理系统,包含用户管理和文档管理两大功能模块。

2501_92019101的博客 540

【Java与智能设备】ch0501 Intent的使用

Intent概述 概念 Activity基本设计理念是:减少组件间的耦合;因此在Android中提供了Intent来实现在应用程序组件与组件之间交互。 高内聚,低耦合 Intent:意图, 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述;Android根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。 Intent最主要的作用就是,使用Intent启动三大核心组件 活动(Activity)、服务(Service)和广播接收器(Broadca

AYuan for Java 386

【Qwen2微调实战】LLaMA-Factory框架对Qwen2-7B模型的微调实践

在人工智能的浪潮中,大型语言模型(LLMs)正逐渐成为研究和应用的热点。它们在自然语言处理(NLP)的各个领域,如文本生成、翻译、问答等任务中展现出了卓越的能力。Qwen2-7B模型,作为该领域的佼佼者,不仅因其庞大的参数量和强大的表示能力受到关注,更因其在微调后能够更好地适应特定任务而备受关注。本文将详细介绍如何利用LLaMA-Factory这一高效的微调框架对Qwen2-7B进行微调,以期达到提升模型在特定任务上的表现。

寻道AI,探索AI无限可能! 2万+

[转]Android中的Intent详细讲解

Android中的Intent详细讲解在一个<span class="t_tag" onclick="function onclick(){tagshow(event)}">Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。在这些组件之间的通讯中,主

红心地瓜的专栏 3万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android中的Intent详细讲解

  在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。  而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。  在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组

shenbin1430的专栏 4171

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

126.Intent详细讲解

没有明确指定要启动的组件的类名,而是指定了一组 action、category 和 data 等信息(就像你告诉快递员:“我要寄一个能打开网页的包裹!它可以用来启动组件、传递数据,就像一个“快递包裹”一样,将消息和数据从一个地方送到另一个地方。通常用于启动应用程序内部的组件,例如启动同一个应用程序中的另一个 Activity。这些组件就像一个个独立的模块,它们之间需要进行通信和协作才能完成复杂的任务。明确指定了要启动的组件的类名(就像快递单上写明了收件人的姓名和地址)。的组件(例如浏览器),并启动该组件。

2303_79132118的博客 759

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

intent对象讲解

bingqingsuimeng的专栏 657

Android Intent显式与隐式跳转详细讲解

Android Intent是一种重要的消息传递机制,可用于在应用程序之间进行通信。Intent 可以分为显式 Intent 和隐式 Intent。显式 Intent 明确指定要启动的 Activity,而隐式 Intent 只指定 Action、Category、Data 等元素,由系统匹配合适的 Activity。Intent 可以传递数据,使用 putExtra() 方法添加键值对即可。数据类型可以是基本类型、字符串、Parcelable 对象等。Intent 还可以启动服务和发送广播。

qq_64125090的博客 3915
上一篇: const 的常用方法
下一篇: Intent Filter 实例
Wo_Ai_Java
博客等级 码龄16年 26粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值