一、显式调用方法

方法一:

Intent intent=new Intent(本类,将要跳转的类); //Intent intent=new Intent(MainActivity.this,JumpToActivity.class);

startActivity(intent);

方法二:

Intent intent2=new Intent();

intent2.setClass(本类,将要跳转的类); // intent2.setClass(MainActivity.this,JumpToActivity.class);

startActivity(intent2);

方法三:(此方式可用于打开其它的应用)

Intent intent2=new Intent();

intent2.setComponent(new ComponentName(MainActivity.this, JumpToActivity.class));

startActivity(intent2);

component,目标组件的包或类名称(完整类名):

在使用component进行匹配时,一般采用以下几种形式:

intent.setComponent(new ComponentName(getApplicationContext(), JumpToActivity.class));

intent.setComponent(new ComponentName(getApplicationContext(), "com.liujc.test.JumpToActivity"));

intent.setComponent(new ComponentName("com.liujc.test", "com.liujc.test.JumpToActivity"));

二:隐式调用方法

通过action跳转:

Intent intent = new Intent();

intent.setAction("con.liujc.test.jump");

startActivity(intent);

需要将要跳转到的Activity在AndroidManifest.xml中设置action:

通过Scheme跳转协议跳转:

android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转那个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。

URL Scheme协议格式:

liujc://goods:8080/goodsDetail?goodsId=20170112

上面的路径 Scheme、Host、port、path、query全部包含:

liujc代表该Scheme 协议名称

goods代表Scheme作用于哪个地址域

goodsDetail代表Scheme指定的页面

goodsId代表传递的参数

8080代表该路径的端口号

URL Scheme如何使用:

在AndroidManifest.xml中对标签增加设置Scheme:

android:name=".GoodsDetailActivity"

android:theme="@style/AppTheme">

获取Scheme跳转的参数:

Uri uri = getIntent().getData();

if (uri != null) {

// 完整的url信息

String url = uri.toString();

Log.e(TAG, "url: " + uri);

// scheme部分

String scheme = uri.getScheme();

Log.e(TAG, "scheme: " + scheme);

// host部分

String host = uri.getHost();

Log.e(TAG, "host: " + host);

//port部分

int port = uri.getPort();

Log.e(TAG, "host: " + port);

// 访问路劲

String path = uri.getPath();

Log.e(TAG, "path: " + path);

List pathSegments = uri.getPathSegments();

// Query部分

String query = uri.getQuery();

Log.e(TAG, "query: " + query);

//获取指定参数值

String goodsId = uri.getQueryParameter("goodsId");

Log.e(TAG, "goodsId: " + goodsId);

}

调用方式:

网页上:(使用系统自带浏览器或者谷歌浏览器)

打开商品详情

原生调用:

Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("liujc://goods:8080/goodsDetail?goodsId=20170112"));

startActivity(intent);

如何判断一个Scheme是否有效,有效后再启动:

PackageManager packageManager = getPackageManager();

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("liujc://goods:8080/goodsDetail?goodsId=20170112"));

List activities = packageManager.queryIntentActivities(intent, 0);

boolean isValid = !activities.isEmpty();

if (isValid) {

startActivity(intent);

}

android 通过类名跳转activity,Activity跳转方式总结相关推荐

  1. android studio 跳转后保留原页面数据_Intent详解以及Activity的跳转与数据传递

    在上一次讲述Activity的时候,还有一个非常重要且常用的知识点没有讲,就是不同Activity之间的跳转和数据传递.我们在平常在使用app应用的时候,Activity的跳转和数据传递是经常会接触到 ...

  2. Android 隐式跳转(Activity的隐式跳转)

    学而时习之,温故而知新,放假前回顾下android 的 隐式跳转 Activity的显式跳转: 是直接指定需要调用的Activity Activity的隐式跳转: 不明确指定启动哪个Activity, ...

  3. Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

    按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...

  4. Android之检查跳转的Activity是否存在

    1.需求 android我们知道经常会跳各种设置页面,比如设置默认浏览器页面.设置添加快捷方式权限页面,我们会根据机型进行适配,但是有时候如果找到也找个页面不try catch操作程序会奔溃 2.检查 ...

  5. Android学习笔记(四):在Activity中跳转--Intent的使用

    Android学习笔记(四):在Activity中跳转--Intent的使用 上篇,我们实战了一个很小的项目BMI,通过BMI这个项目,可以很好的理解Activity的程序结构,以方便后面高级API的 ...

  6. Android跳转动画时长,Android_Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转,需求:Activity(fragment)跳转的时候 - phpStudy...

    Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转 需求:Activity(fragment)跳转的时候当前界面裂开,上下各自拉出手机屏幕,之后跳转到相对应的Activity.整体效果图如下 ...

  7. Android activity相互跳转

    Android activity相互跳转 学习目标: 请你设计一个简单的问卷,界面自行设计,要求有较好的显示效果 功能要求: 1.输入昵称(不能为空) 2.选择性别 3.问卷内容 "你最喜欢 ...

  8. Android -- 基础篇 -- Activity跳转动画的五种方式(下)

    上一篇文章中我们讲解了在Activity启动过程中获取组件宽高的五种方式.在Activity的启动过程中如果我们直接在生命周期方法中通过view.getWidth()或者是view.getHeight ...

  9. Android Fragment跳转到Activity的方法

    一开始我直接按照Activity页面之间跳转的方法进行的跳转,就是在xml文件中给相应的组件onClick android:onClick="to_search" 在网上查询到的好 ...

  10. android activity的跳转动画,实现activity跳转动画的若干种方式

    第一种: (使用overridePendingTransition方法实现Activity跳转动画) 在Activity中代码如下 /** * 点击按钮实现跳转逻辑 */ button1.setOnC ...

最新文章

  1. 实现800*600,1024*768两套分辨率方案
  2. win10有自带测试软件吗,使用windows10自带工具测试系统内存
  3. boost::interprocess::bufferstream用法的测试程序
  4. 表的插入、更新、删除、合并操作_20_通过表关联删除多张表
  5. python解释器的工作原理_Python GIL全局解释器锁详解(深度剖析)
  6. influxdb删除某一列(tag或者field)
  7. python发送qq消息linux_python 调用qq邮箱 linux 执行每天自动发送邮件
  8. 关于Firefox浏览器设置默认字体的教程
  9. ITSM群(48132184)讨论精选
  10. 阿铭Linux_网站维护学习笔记20190227
  11. Factory Track 同步获取 Infor CloudSuite Industrial 数据
  12. 北京-IT技术狗-顾名思义 解释一下当时随手写下这个名字
  13. Android SQlite基本用法
  14. a boo peek_|音译|171120*歌词ΓRed Velvet - Peek-A-Boo
  15. (10.2.1)15款优秀移动APP产品原型设计工具
  16. 【实用软件】Json文件查看器(支持查看超大JSON文件)
  17. CAN与CANOpen(一)
  18. 【自然语言处理】ELMo 讲解
  19. LeetCode 876、链表的中间结点
  20. C#图形教程画笔画刷等

热门文章

  1. [转]Spark能否取代Hadoop?
  2. oracle数据库表的导入导出cmd命令大全
  3. 解决Java compiler level does not match the version of the installed Java project facet.问题
  4. 可实现自动设置尺寸的图片上传类
  5. Stars HDU 1541
  6. Delphi与SQL模糊查询(转载)
  7. BizTalk Server 2010新功能介绍(六):BizTalk Mapper (下)
  8. BZOJ4567 SCOI2016背单词(trie+贪心)
  9. XMLHttpRequest Level 2 使用指南
  10. 新建Eclipse的web工程目录结构和MyEclipse相似的设置