当前位置: 首页 > news >正文

Android——显式/隐式Intent

概述

在Android中,Intent是各个组件之间信息通信的桥梁,它用于Android各组件的通信。

Intent 的组成部分
在这里插入图片描述

一、显式 Intent

第一种方式

	Intent intent = new Intent(this, ActFinishActivity.class);startActivity(intent);

第二种方式

    Intent intent = new Intent();intent.setClass(this, ActFinishActivity.class);startActivity(intent);

第三种方式

    Intent intent = new Intent();ComponentName componentName = new ComponentName(this, ActFinishActivity.class);intent.setComponent(componentName);startActivity(intent);

可以看出第一、二种比较简单且相似,但是这两种方式都需要获取到要跳转的类。如果要跳到其他应用就不行了,用 ComponentName 这种方式可以解决,如下:

    ComponentName componentName = new ComponentName("com.example.study_android", "com.example.study_android.ActFinishActivity");

二、隐式 Intent

隐式 Intent 没有明确指定要跳转的目标活动,只给出一个动作字符串让系统自动匹配,属于模糊匹配。

  • 常见系统动作的取值说明
    在这里插入图片描述
    动作名既可以通过 setAction 方法指定,也可以通过构造函数 Intent(String action) 直接生成意图对象。
  • 跳转到拨号系统应用
    private void handleNavHidden() {String phoneNo = "12345";Intent intent = new Intent();intent.setAction(Intent.ACTION_DIAL);Uri uri = Uri.parse("tel:" + phoneNo);intent.setData(uri);startActivity(intent);}
  • 跳转到另一个APP
    private void handleNavMy() {Intent intent = new Intent();intent.setAction("android.intent.action.MYAPP");intent.addCategory(Intent.CATEGORY_DEFAULT);startActivity(intent);}

在另一个APP的主Activity中添加以下代码:

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

三、向下一个Activity发送数据

  • Intent 使用 Bundle 对象存放待传递的数据信息。
  • Bundle 对象操作各类型数据的读写方法说明见下表:
    在这里插入图片描述
    通过 Bundle 传递
    private void handleNextData() {Intent intent = new Intent(this, ActFinishActivity.class);Bundle bundle = new Bundle();long currentTimeMillis = System.currentTimeMillis();bundle.putString("request_time", Long.toString(currentTimeMillis));bundle.putString("request_content", "hello,world");intent.putExtras(bundle);startActivity(intent);}

在跳转后的页面中接收 Bundle

    @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_act_finish);tv_desc=findViewById(R.id.tv_desc);Bundle bundle = getIntent().getExtras();String request_time = bundle.getString("request_time");String request_content = bundle.getString("request_content");String desc = String.format("消息是:%s,\n时间是:%s", request_content, request_time);tv_desc.setText(desc);}

也可以不通过Bundle,直接传单个数据

 	intent.putExtra("name","张三");

接收单个数据

	String name = getIntent().getStringExtra("name");

四、向上一个Activity发送数据

步骤:

  • 当前页面通过 registerForActivityResult 注册回调
    private ActivityResultLauncher<Intent> register;
        register = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {if (result != null) {Intent intent = result.getData();if (intent != null && result.getResultCode() == Activity.RESULT_OK) {Bundle bundle = intent.getExtras();String response_time = bundle.getString("response_time");String response_content = bundle.getString("response_content");String desc = String.format("返回的消息是:%s\n,时间:%s", response_content, response_time);tv_res.setText(desc);}}});
  • 当前页面通过 register.launch 发起跳转
    private void handleDataRes() {Intent intent = new Intent(this, ActFinishActivity.class);Bundle bundle = new Bundle();long currentTimeMillis = System.currentTimeMillis();bundle.putString("request_time", Long.toString(currentTimeMillis));bundle.putString("request_content", "hello,world");bundle.putString("name", "张三");intent.putExtras(bundle);register.launch(intent);}
  • 在下个页面调用 setResult 设置数据,并通过 finish结束页面
    public void onClick(View view) {Intent intent = new Intent();Bundle bundle = new Bundle();long currentTimeMillis = System.currentTimeMillis();bundle.putString("response_time", Long.toString(currentTimeMillis));bundle.putString("response_content", "你好啊");intent.putExtras(bundle);// 携带意图返回上一个页面,RESULT_OK 表示处理成功setResult(Activity.RESULT_OK, intent);// 结束当前活动页finish();}

案例代码

相关文章:

Android——显式/隐式Intent

概述 在Android中&#xff0c;Intent是各个组件之间信息通信的桥梁&#xff0c;它用于Android各组件的通信。 Intent 的组成部分 一、显式 Intent 第一种方式 Intent intent new Intent(this, ActFinishActivity.class);startActivity(intent);第二种方式 Intent intent …...

【鸿蒙HarmonyOS实战:通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程(邀请码)方式教程详解】

鸿蒙HarmonyOS实战&#xff1a;通过华为应用市场上架测试版App实现HBuilder X打包的UniApp项目的app转hap教程&#xff08;邀请码&#xff09;方式详解 在使用uniapp打包的鸿蒙项目的过程中&#xff0c;由于生成的是app文件&#xff0c;而hdc传给鸿蒙HarmonyOS系统需要的是hap文…...

一篇文章入门傅里叶变换

文章目录 傅里叶变换欧拉公式傅里叶变换绕圈记录法质心记录法傅里叶变换公式第一步&#xff1a;旋转的表示第二步&#xff1a;缠绕的表示第三步&#xff1a;质心的表示最终步&#xff1a;整理积分限和系数 参考文献 傅里叶变换 在学习傅里叶变换之前&#xff0c;我们先来了解一…...

基于python的语音识别与蓝牙通信的温控系统

基于python的语音识别与蓝牙通信的温控系统毕设项目 大家好&#xff0c;我是陈辰学长&#xff0c;一名在 Java 圈辛勤劳作的码农。今日&#xff0c;要和大家分享的是一款基于python的语音识别与蓝牙通信的温控系统毕设项目。项目源码以及部署相关事宜&#xff0c;请联系陈辰学…...

Pandas Series学习

1.Series简介 Pandas Series类似表格的列&#xff08;column&#xff09;&#xff0c;类似于一维数组&#xff0c;可以保存任何数据类型&#xff0c;具有标签&#xff08;索引&#xff09;&#xff0c;使得数据在处理分析时更具灵活性。Series数据结构是非常有用的&#xff0c;…...

为什么要探索太空?这对我们有什么好处?

几个世纪以来&#xff0c;人类一直着迷于宇宙的奥秘&#xff0c;这驱使我们冒险离开地球&#xff0c;去探索太阳系之外的未知环境。在当今世界&#xff0c;我们为什么要进行太空探索之旅这个问题&#xff0c;远不止出于单纯的好奇。 归根结底&#xff0c;太空探索是一种必要之…...

uniapp开发【选择地址-省市区功能】,直接套用即可

一、效果展示 二、代码 <template><view><view class="user_info"><view class="item"...

3个模型的交互式多模型IMM,基于EKF的目标跟踪实例(附MATLAB代码)

文章目录 3个模型的IMM源代码运行结果代码介绍总结 3个模型的IMM 代码实现了基于 I M M IMM IMM&#xff08;Interacting Multiple Model&#xff09;算法的目标跟踪。它使用三种不同的运动模型&#xff08;匀速直线运动、左转弯和右转弯&#xff09;来预测目标的位置&#x…...

利用游戏引擎的优势

大家好&#xff0c;我是小蜗牛。 在当今快速发展的游戏产业中&#xff0c;选择合适的游戏引擎对开发者来说至关重要。Cocos Creator作为一款功能强大且灵活的游戏引擎&#xff0c;为开发者提供了丰富的工具和资源&#xff0c;使他们能够高效地开发出优秀的游戏。本文将探讨如何…...

一致角色的视频且唇形同步中文配音和免费音效添加

现在AI可以免费生成不带水印、不限时长的视频了&#xff0c;并且视频里的角色可以进行唇形同步配音。最重要的是&#xff0c;我还会分享给大家&#xff0c;怎么生成角色一致的动画场景&#xff0c;怎么使用场景图片生成完整的视频&#xff0c;并且我还会介绍一款&#xff0c;我…...

Spring学习笔记_14——@Qualifier

Qualifier 1. 解释 当Spring中存在多个类型相同但是名称不同的Bean时&#xff0c;使用Autowired注解向类的构造方法、方法、参数、字段中注入Bean对象时&#xff0c;首先会根据Bean的类型注入&#xff0c;如果存在多个类型相同的Bean时&#xff0c;会根据Bean的名称注入&…...

高级SQL技巧详解与实例

在数据处理与分析领域&#xff0c;高级SQL技巧是提升效率与准确性的关键。本文将结合参考资料&#xff0c;对高级SQL技巧进行系统的整理与解读&#xff0c;并通过实例展示其应用。 一、窗口函数 窗口函数是一种在SQL中执行复杂计算的强大工具&#xff0c;它们允许用户在一组行…...

实现PC端和安卓手机的局域网内文件共享

文章目录 一、准备工作1.1 笔记本(Win10)的设置&#xff08;主要可分为3大部分&#xff1a;更改共享设置、创建本地用户、选择共享文件&#xff09;1.2 台式机(Win7)的设置 二、实现共享文件夹的访问2.1 笔记本(Win10)访问台式机(Win7)2.2 台式机(Win7)访问笔记本(Win10)(一定要…...

腾讯云云开发深度解读:云数据库、云模板与AI生成引用的魅力

腾讯云云开发平台为开发者和潜在用户提供了丰富的解决方案&#xff0c;其中的云数据库、云模板和AI生成引用等产品尤为引人注目。这篇文件是我个人对这些产品的能力、应用场景、业务价值、技术原理的介绍和深度解读&#xff0c;最后也简单写一下新手如何进行相关产品的初步使用…...

预览 PDF 文档

引言 在现代Web应用中&#xff0c;文件预览功能是非常常见的需求之一。特别是在企业级应用中&#xff0c;用户经常需要查看各种类型的文件&#xff0c;如 PDF、Word、Excel 等。本文将详细介绍如何在Vue项目中实现 PDF 文档的预览功能。 实现原理 后端API 后端需要提供一个…...

Chromium 在WebContents中添加自定义数据c++

为了能在WebContents中添加自定义数据先看下几个关键类的介绍。 一、WebContents 介绍&#xff1a; WebContents是content模块核心&#xff0c;是呈现 Web 内容&#xff08;通常为 HTML&#xff09;位于矩形区域中。 最直观的是一个浏览器标签对应一个WebContents&#xff0c…...

【Apache Zookeeper】

一、简介 1、场景 如何让⼀个应⽤中多个独⽴的程序协同⼯作是⼀件⾮常困难的事情。开发这样的应⽤&#xff0c;很容易让很多开发⼈员陷⼊如何使多个程序协同⼯作的逻辑中&#xff0c;最后导致没有时间更好地思考和实现他们⾃⼰的应⽤程序逻辑&#xff1b;又或者开发⼈员对协同…...

13.音乐管理系统(基于SpringBoot + Vue)

目录 1.系统的受众说明 ​​​​​​​ 2 需求分析 2.1用例图及用例分析 2.1.1 用户用例图及用例分析 2.1.2 管理员用例图及用例分析 2.2 系统结构图和流程图 2.2.1 音乐播放器的系统流程图&#xff08;图2.2.1-1&#xff09; 2.2.2 系统功能表&#xff08;表2.2.2…...

如何从iconfont中获取字体图标并应用到微信小程序中去?

下面我们一一个微信小程序的登录界面的制作为例来说明&#xff0c;如何从iconfont中获取字体图标是如何应用到微信小程序中去的。首先我们看效果。 这里所有的图标&#xff0c;都是从iconfont中以字体的形式来加载的&#xff0c;也就是说&#xff0c;我们自始至终没有使用一张…...

C语言中的位操作

第一章 变量某位赋值与连续赋值 寄存器 | 值 //例如&#xff1a;a 1000 0011b a | (1<<2) //a 1000 0111 b 单独赋值 a | (3<<2*2) // 1011 0011b 连续赋值 第二章 变量某位清零与连续清零 寄存器 & ~&#xff08;&#xff09; 值 //例子&#xff1a;a …...

Motrix WebExtension终极指南:如何让你的浏览器下载速度提升300%

Motrix WebExtension终极指南&#xff1a;如何让你的浏览器下载速度提升300% 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager and its forks 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 你是否厌倦了…...

Python统一调用多款AI大模型:python-tgpt库实战指南

1. 项目概述&#xff1a;一个让Python与AI对话更简单的工具如果你最近在尝试用Python调用各种大语言模型&#xff08;LLM&#xff09;的API&#xff0c;比如OpenAI的GPT、Google的Gemini&#xff0c;或者开源的Llama、Mistral&#xff0c;那你大概率经历过这样的场景&#xff1…...

UVA10464 Big Big Real Numbers 题解

UVA10464 Big Big Real Numbers 题目描述 Link: https://uva.onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&category16&pageshow_problem&problem1405 PDF 输入格式 输出格式 输入输出样例 #1 输入 #1 8 1111.332 1123.1112 .223 9.8963 0.…...

LlamaGen:自回归模型在图像生成领域挑战扩散模型

1. 项目概述&#xff1a;当Llama遇见图像生成最近在图像生成领域&#xff0c;一个名为LlamaGen的项目引起了我的注意。它提出了一个非常大胆且反直觉的观点&#xff1a;纯自回归模型&#xff08;AR&#xff09;在图像生成任务上&#xff0c;可以超越当前如日中天的扩散模型&…...

国产多模态大模型“刘知远”:技术原理、实战应用与未来展望

国产多模态大模型“刘知远”&#xff1a;技术原理、实战应用与未来展望 引言 在人工智能浪潮中&#xff0c;多模态大模型正成为推动AGI&#xff08;通用人工智能&#xff09;发展的关键引擎。当全球目光聚焦于GPT-4、DALL-E等明星模型时&#xff0c;国产力量也在悄然崛起。其中…...

Laravel Permission自动化测试终极指南:权限功能的完整验证方案 [特殊字符]

Laravel Permission自动化测试终极指南&#xff1a;权限功能的完整验证方案 &#x1f680; 【免费下载链接】laravel-permission Associate users with roles and permissions 项目地址: https://gitcode.com/gh_mirrors/la/laravel-permission 在Laravel应用开发中&…...

学术写作AI工具排雷指南:5款主流产品深度评测(涵盖毕业与发刊需求)

每逢毕业季&#xff0c;无论是图书馆还是自习室&#xff0c;总能看到为论文熬夜奋战的身影。随着人工智能的发展&#xff0c;使用AI工具辅助提升科研效率已成为许多本硕博学生的常规操作。然而&#xff0c;不少人却陷入了一个误区&#xff1a;以为随便找个对话型AI就能搞定一切…...

从DO-178标准演进看多核系统耦合分析:隐式要求显式化与可视化实践

1. 从文学课堂到工程标准&#xff1a;隐式与显式的分野在大学里&#xff0c;我的文学课老师总是不厌其烦地强调“隐式”与“显式”含义的区别。理解这种区别&#xff0c;是读懂一部小说深层隐喻、体会作者言外之意的关键。当时觉得这不过是文学分析的技巧&#xff0c;直到我踏入…...

制作程序统计企业资质办理流程数据,梳理耗时节点,缩短资质办理周期,助力企业快速开展商务工作。

聚焦“企业资质办理流程数据的统计与周期优化”&#xff0c;适用于商务智能&#xff08;BI&#xff09;课程中的流程挖掘&#xff08;Process Mining&#xff09;与运营效率分析场景。一、实际应用场景描述在工程建设、招投标、医药、金融等行业&#xff0c;企业常需办理各类资…...

AI智能体自动化部署:Agent Factory 两分钟构建专家级AI助手

1. 项目概述&#xff1a;Agent Factory 是什么&#xff1f; 如果你和我一样&#xff0c;对AI智能体&#xff08;AI Agent&#xff09;的潜力感到兴奋&#xff0c;但又对部署一个功能完整、面向公众的专家级Agent感到头疼——需要配置身份、记忆、知识库、Web界面&#xff0c;还…...