自我感觉这里的排版看着更舒服些。 Activity跳转方式总结

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、显式调用方法

方法一:

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"));

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2:隐式调用方法

通过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协议格式:

scheme://host:port/path   模式://主机:端口/路径

完整的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:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

获取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的跳转,Android Activity跳转方式总结分享相关推荐

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

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

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

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

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

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

  4. Android学习笔记(九)——Activity的跳转和数据传递

    ---------由AActivity跳转到BActivity-------- 显式跳转1(最常用的方法) mbtnjump.setOnClickListener(new View.OnClickLi ...

  5. Android中Activity各种页面跳转并传值(Activity -> Activity)(Activity -> Fragment)(Activity -> Service)

    目录 Activity -> Activity Activity -> Fragment Fragment -> Activity Activity -> Service Ac ...

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

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

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

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

  8. android跳转方法,Android入门篇(五)Activity跳转

    上一篇写了Activity的生命周期,这方面的知识在我们日常开发的时候经常会用到.同样的这篇也写一些基础的知识. Activity间跳转 Button监听事件初探 Activity跳转配合Intent ...

  9. android 中Service跳转到Activity

    Intent news = new Intent(mContext, Activity_News.class);news.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ...

  10. android activity自动跳转,Android activity跳转之finish()方法的作用

    最近在看郭神的<第一行代码(第2版)>,温故知新,看到有很多地方在页面跳转后还加了一句:finish();,原来像下面代码这样用 Intent 从 A activity 跳到 B acti ...

最新文章

  1. 如图两道面试题,顺便深入线程池,并连环17问
  2. 201706问题记录
  3. 六个 Linux性能监控命令行工具
  4. [转载] 远程方法调用(RMI)与远程过程调用(RPC)
  5. PAIP.http post 400错误
  6. linux选择内核命令,Lenky个人站点
  7. USB 2.0学习笔记1——硬件/Lenovo
  8. 华为解锁密码忘了怎么办用计算机,华为笔记本忘记密码怎么办(免费教你3种解密方法)...
  9. JPA 之 detach方法的使用及注意事项
  10. android6自定义锁屏,Android
  11. 达观电网故障知识图谱,三大功能全面提升电网故障处置效率
  12. python实现千牛客服自动回复语_淘宝客服自动回复语录(客服自动回复大全)
  13. libvirt 的使用
  14. sha256可逆吗_当我们谈“X+区块链”的时候,到底搞懂区块链了吗?
  15. Windows系统DNS部署与安全
  16. 字符串与16进制的转换
  17. 有一种缘,放手后成为风景。有一颗心,坚持中方显真诚。
  18. 肖邦21首夜曲 简略介绍
  19. 现在学3D游戏建模还能找到高薪好工作吗?3d建模基础入门教程
  20. Python 将日志输出到控制台,写入文件,根据不同日志级别打印不同颜色的日志

热门文章

  1. 奥特曼r版_奥特曼新作“奥特曼R/B”公布!网友:让国产奥特曼无地之容!
  2. 拓扑排序--Kitchen Plates
  3. 汇编语言入门·打印输出“Hello,Assembly”
  4. 清北+华五!中国最强的7所大学!北京重点支持落户!
  5. 水星迷你无线路由器ap模式 下要不要启用 dhcp服务器,水星(Mercury)Mini无线路由器Router模式设置...
  6. Apache Dolphinscheduler3.0.0-beta-1 版本发布,新增FlinkSQL、Zeppelin任务类型
  7. 数据科学分布——卡方分布
  8. 鸿蒙心理测评中心,最近很火的心理测试:你第一眼看到的是什么?测出你的背后隐藏性格!...
  9. 2月15日,OpenCenter踏步而来
  10. Android 设计模式