Android使用intent跳转到其它应用activity界面

2023-11-01

Android使用intent跳转到其它应用activity界面

关于这方面的理解:

1、使用包名和类名直接启动,前提是知道这两个。

1.1、启动主activity

Intent intent=new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//参数是包名,类全限定名,注意直接用类名不行
ComponentName cn=new ComponentName("com.example.administrator.test",
        "com.example.administrator.test.MainActivity");
intent.setComponent(cn);
startActivity(intent);
1.2、启动非主的activity,非主的activity不能直接启动,必须要在manifest里面设置exported属性为true,表示此activity对外公开,才能直接跳转。

Intent intent=new Intent();
//参数是包名,类全限定名,注意直接用类名不行
ComponentName cn=new ComponentName("com.example.administrator.test",
        "com.example.administrator.test.Activity2");
intent.setComponent(cn);
startActivity(intent);
1.3、应当把这部分代码放到try块里面,跳转出错时捕获异常,否则异常会导致应用崩溃。

try
{
    Intent intent=new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    //参数是包名,类全限定名,注意直接用类名不行
    ComponentName cn=new ComponentName("com.example.administrator.test",
            "com.example.administrator.test.MainActivity");
    intent.setComponent(cn);
    startActivity(intent);
}catch (Exception e)
{
    Util.P.le("产生异常");
}
1.4、还可以通过代码获取包名,主类名,不过这样就不算直接启动了。


2、一般的。使用这种方法只能启动到系统的activity,没搞出来,待探究。
2.1、使用intent-filter的intent的属性配合起来用。
在xml文件中给对应的activity添加intentt-filter节点,再在节点下面添加各种属性。
要启动activity是,intent添加属性,当某个activity的intent-filter里面的属性包括了intent所含的所有属性,
则这个activity满足条件。当有 多个满足条件的activity时会让用户选择启动哪个 。
2.2具体的。
action:主要是代表这个activity所执行的动作。比如查看,编辑,拨打。相当于一个句子中的动词。另外还代表一些其他的特性,比如main。
category:分类,主要是指定activity是关于处理哪方面的信息的。比如地图,邮件。相当于一个句子的宾语。
data:传递数据用。调到其它的activity,有可能就会带一些数据,这个数据通过可以通过intent的putExtras传递,也可以通过data传递。
  extra传递必须知道key,适用于在一个应用中。在应用间传递就用data,data规定了格式等,就适用于在应用间传递一些规范了的数据。
data的结构较为复杂,字符串格式和url(http的)一样。“模式://主机:端口/路径”,在data节点下指这些值
这里有四个部分,指定其中几个部分为某值。比如指定模式为content,则intent必须指定模式为intent的,才能启动此acvitiy。
另外,有几种data的组合是不能指定的,比如缺少scheme的组合不行。
再另外:mimeType属性,也用于和前面的action搭配,指定动作的对象(宾语)。
2.3、注意的:(1) action,category,data,intent-filter这几个元素都是可以重复的,匹配时只选其中一个即可。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android使用intent跳转到其它应用activity界面 的相关文章

随机推荐

  • LLVM 的编译框架基本流程探索(Clang AST语法树)

    上一篇文章末尾提到 AST语法树 语句如下 clang fmodules fsyntax only Xclang ast dump src pp CompStream cpp include
  • php找两个数组对比,PHP如何对比两个数组是否相同

    第一种方法 降维成字符串 这种方法真对多维数组 思路是把数组降维成字符串 比如用json decode serialize 等函数转成字符串后再进行比较 第二种 用PHP自带对比函数 但只能支持二维数组 比较数组 返回数组的交集 只比较键值
  • React.js 官方资料摘记:状态提升

    状态提升 官网上那个例子很复杂 所以我在这里做了简化 说明的内容是一样的 先说明一下实现目标 有两个输入框 当一个输入框输入内容时 另一个自动输入相同内容 实现原理 将两个输入框的value属性的值绑定到父类中去 将两个输入框的onChan
  • iPhone 手机浏览器 font-size 失效问题

    问题 电脑端浏览器显示正常 iPhone手机浏览器却异常 如下图 用Safari调试iPhone手机网页 可以看到设置了 font size 12px 但实际浏览器渲染的字体大小却是 16px 解析 因为 Font Boosting 字体提
  • 安全测试常用几个工具

    下面介绍了这些工具的主要功能以及教程 书籍 视频等 端口扫描器 Nmap Nmap是 Network Mapper 的缩写 众所周知 它是一款非常受欢迎的免费开源黑客工具 Nmap被用于发现网络和安全审计 据数据统计 全世界成千上万的系统管
  • 【华为OD机试】周末爬山 (C++ Python Java)2023 B卷

    题目描述 周末小明准备去爬山锻炼 0代表平地 山的高度使用1到9来表示 小明每次爬山或下山高度只能相差k及k以内 每次只能上下左右一个方向上移动一格 小明从左上角 0 0 位置出发 输入描述 第一行输入m n k 空格分隔 代表m n的二维
  • 在子类中不能通过父类对象实例来访问父类的protected属性和方法

    四种修饰符的作用域 java中变量 方法和类有四种修饰符public protected default private 它们的作用域范围如下 public 拥有最大的权限 可以在本项目中的任意类中访问 protected 可以在本包下和其
  • 合并有序数组(Java)

    题目链接 88 合并两个有序数组 面试题 10 01 合并排序的数组 class Solution public void merge int A int m int B int n int nums1Copy new int m Syst
  • hdu 1000 A+B problem

    include
  • npm warn config global `--global`, `--local` are deprecated. use `--location=global` instead.

    解决方案 1 修改配置文件 1 1可以使用命令行 找到npm的配置目录 npm config命令 npm config ls npm config list npm config ls l 1 2打开nodejs文件夹 并打开两个文件 np
  • PostgreSQL 15安装使用Oracle_FDW

    下载插件 官方地址 http pgxn org dist oracle fdw 根据PostgreSQL版本选择 下载oracle客户端 https www oracle com database technologies instant
  • 【毕业季·进击的技术er】 什么是微信小程序,带你推开小程序的大门

    活动地址 毕业季 进击的技术er 作者 半身风雪 简介 本节课程 我将带领大家初识微信小程序 将通过小程序的发展 开发环境 开发工具 项目结构等 做一个详细的讲解 前几天 我也写了一篇关于毕业季的文章 时间悠悠 犹记得2019年的那个毕业季
  • 【翻译】GPT-3是如何工作的

    前排提示 这是我补充的内容 仅代表个人观点 和作者本人无关 主要是意译 我的补充 想看原文表达的拖到最底下有链接 原文翻译 在科技界我们可以看到很多关于GPT 3的新闻 大型语言模型 比如GPT 3 已经展示出让我们惊讶的性能 虽然对于大部
  • 如何在colab中加载数据集并且运行文件

    方式1 从本地机器导入数据集 方式2 从google drive导入 方式3 导入kaggle网站提供的数据集 方式1 选择导入本地的文件 注意导入的文件智慧自会对本次会话生效 此外 还可以获得本地导入的文件的路径以及文件名称 路径如下图所
  • 存储器实验:存储扩展实验、MIPS寄存器文件设计

    一 实验要求 项目1 存储扩展实验 现有如下 ROM 组件 4片4K32位 ROM 7片16K32位 ROM 请在 Logisim 平台构建 GB2312 汉字编码的16K 16点阵汉字字库 电路输入为汉字区号和位号 电路输出为8 32位
  • jmeter实现负载均衡_Jmeter实现简单web负载测试

    Jmeter实现简单web负载测试 简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具 用于对软件做压力测试 它最初被设计用于Web应用测试 但后来扩展到其他测试领域 它可以用于测试静态和动态资源例如静态文件
  • 59 openEuler 22.03-LTS 搭建MySQL数据库服务器-软件介绍和配置环境

    文章目录 59 openEuler 22 03 LTS 搭建MySQL数据库服务器 软件介绍和配置环境 59 1 软件介绍 59 2 配置环境 59 2 1 关闭防火墙并取消开机自启动 59 2 2 修改SELINUX为disabled 5
  • 支付模块-微信支付

    目录 接口实现 第一步 当点击立即购买生成订单 第二步 根据订单id查询订单信息 第三步 生成微信支付的二维码 第四步 查询订单支付状态 前端实现 编辑 1 点击支付 2 订单详情页 接口实现 像这种微服务B2C模式的 订单业务需要远程调用
  • Zookeeper JAVA_HOME is not set and java could not be found in PATH

    今天第一次学习Zookeeper 集群环境 在其中一台上面安装一直启动失败 记录一下 问题 提示JAVA环境不存在 环境 三台服务器 阿里云ECS CentOS 7 6 64位 腾讯云服务器 CentOS 7 5 64位 阿里云轻量应用服务
  • Android使用intent跳转到其它应用activity界面

    Android使用intent跳转到其它应用activity界面 关于这方面的理解 1 使用包名和类名直接启动 前提是知道这两个 1 1 启动主activity Intent intent new Intent Intent ACTION