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

Android中的Intent

一.显式Intent

显示Intent是明确目标Activity的类名
1. 通过Intent(Context packageContext, Class<?> cls)构造方法
2.通过Intent的setComponent()方法
3.通过Intent的setClass/setClassName方法

通过Intent(Context packageContext, Class<?> cls)构造方法

通过Intent的setComponent()方法

通过Intent的setClass/setClassName方法

setClass源码:

 public @NonNull Intent setClass(@NonNull Context packageContext, @NonNull Class<?> cls) {mComponent = new ComponentName(packageContext, cls);return this;}

setClassName源码:

    public @NonNull Intent setClassName(@NonNull String packageName, @NonNull String className) {mComponent = new ComponentName(packageName, className);return this;}public @NonNull Intent setClassName(@NonNull Context packageContext,@NonNull String className) {mComponent = new ComponentName(packageContext, className);return this;}

我们发现setClass与setClassName最后都是通过ComponetName来实现的。

二.隐式Intent

隐式Intent通过设置Action、Data、Category,让系统来筛选出合适的Activity。
筛选是根据所有的<intent-filter>来筛选。

如下:

然后使用的时候就可以直接把action放到Intent中:

这样就会跳转到声明隐式Intent的app中。

我们唤起手机拨号界面的action是:

 public static final String ACTION_DIAL = "android.intent.action.DIAL";

然后我们又在自己的app里面声明了和拨打电话一样的action

然后回到主页面通过下列代码调用:

val intent = Intent(Intent.ACTION_DIAL)startActivity(intent)

会发送什么呢?

答案是会唤起一个选择界面任用户选择真正跳转的页面,是拨号页面还是我们的SecondActivity。

注意:如果是同项目的activity跳转,我们使用显式的Intent,如果是创建一个activity给外部程序使用,那么使用隐式Intent。

相关文章:

  • 微信小程序使用echarts报错 ReferenceError: Image is not defined 解决
  • 线程的6中状态
  • win11 电脑睡眠功能失效了如何修复 win11 禁止鼠标唤醒
  • Linux的基本指令(4)
  • express框架搭建后台服务
  • 哈希一致性算法
  • 编程笔记 html5cssjs 028 HTML输入属性(2/2)
  • 系统安全及应用
  • 【Maven】下载及配置
  • Vagrant使用教程
  • 机器学习--ROC AUC
  • Axure骚操作:【制作可暂停与不可暂停进度加载条】
  • git 常用命令 提交commit
  • Python 工具 | pip 基本命令
  • leetcode算法题之递归--综合练习(二)
  • SegmentFault for Android 3.0 发布
  • [译]CSS 居中(Center)方法大合集
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • Date型的使用
  • golang 发送GET和POST示例
  • Java精华积累:初学者都应该搞懂的问题
  • js 实现textarea输入字数提示
  • JS+CSS实现数字滚动
  • Js基础知识(一) - 变量
  • Laravel 菜鸟晋级之路
  • mysql 数据库四种事务隔离级别
  • October CMS - 快速入门 9 Images And Galleries
  • socket.io+express实现聊天室的思考(三)
  • supervisor 永不挂掉的进程 安装以及使用
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 试着探索高并发下的系统架构面貌
  • #微信小程序:微信小程序常见的配置传值
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1)Android开发优化---------UI优化
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (JS基础)String 类型
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)kafka实战——kafka源码编译启动
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .net core控制台应用程序初识
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/C# 的字符串暂存池
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET/C# 使用反射注册事件
  • .NET的微型Web框架 Nancy
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .php文件都打不开,打不开php文件怎么办