android activity的跳转,Android Activity跳转方式总结分享
自我感觉这里的排版看着更舒服些。 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跳转方式总结分享相关推荐
- Android 隐式跳转(Activity的隐式跳转)
学而时习之,温故而知新,放假前回顾下android 的 隐式跳转 Activity的显式跳转: 是直接指定需要调用的Activity Activity的隐式跳转: 不明确指定启动哪个Activity, ...
- Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期
按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...
- Android之检查跳转的Activity是否存在
1.需求 android我们知道经常会跳各种设置页面,比如设置默认浏览器页面.设置添加快捷方式权限页面,我们会根据机型进行适配,但是有时候如果找到也找个页面不try catch操作程序会奔溃 2.检查 ...
- Android学习笔记(九)——Activity的跳转和数据传递
---------由AActivity跳转到BActivity-------- 显式跳转1(最常用的方法) mbtnjump.setOnClickListener(new View.OnClickLi ...
- Android中Activity各种页面跳转并传值(Activity -> Activity)(Activity -> Fragment)(Activity -> Service)
目录 Activity -> Activity Activity -> Fragment Fragment -> Activity Activity -> Service Ac ...
- Android -- 基础篇 -- Activity跳转动画的五种方式(下)
上一篇文章中我们讲解了在Activity启动过程中获取组件宽高的五种方式.在Activity的启动过程中如果我们直接在生命周期方法中通过view.getWidth()或者是view.getHeight ...
- android activity的跳转动画,实现activity跳转动画的若干种方式
第一种: (使用overridePendingTransition方法实现Activity跳转动画) 在Activity中代码如下 /** * 点击按钮实现跳转逻辑 */ button1.setOnC ...
- android跳转方法,Android入门篇(五)Activity跳转
上一篇写了Activity的生命周期,这方面的知识在我们日常开发的时候经常会用到.同样的这篇也写一些基础的知识. Activity间跳转 Button监听事件初探 Activity跳转配合Intent ...
- android 中Service跳转到Activity
Intent news = new Intent(mContext, Activity_News.class);news.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ...
- android activity自动跳转,Android activity跳转之finish()方法的作用
最近在看郭神的<第一行代码(第2版)>,温故知新,看到有很多地方在页面跳转后还加了一句:finish();,原来像下面代码这样用 Intent 从 A activity 跳到 B acti ...
最新文章
- 如图两道面试题,顺便深入线程池,并连环17问
- 201706问题记录
- 六个 Linux性能监控命令行工具
- [转载] 远程方法调用(RMI)与远程过程调用(RPC)
- PAIP.http post 400错误
- linux选择内核命令,Lenky个人站点
- USB 2.0学习笔记1——硬件/Lenovo
- 华为解锁密码忘了怎么办用计算机,华为笔记本忘记密码怎么办(免费教你3种解密方法)...
- JPA 之 detach方法的使用及注意事项
- android6自定义锁屏,Android
- 达观电网故障知识图谱,三大功能全面提升电网故障处置效率
- python实现千牛客服自动回复语_淘宝客服自动回复语录(客服自动回复大全)
- libvirt 的使用
- sha256可逆吗_当我们谈“X+区块链”的时候,到底搞懂区块链了吗?
- Windows系统DNS部署与安全
- 字符串与16进制的转换
- 有一种缘,放手后成为风景。有一颗心,坚持中方显真诚。
- 肖邦21首夜曲 简略介绍
- 现在学3D游戏建模还能找到高薪好工作吗?3d建模基础入门教程
- Python 将日志输出到控制台,写入文件,根据不同日志级别打印不同颜色的日志
热门文章
- 奥特曼r版_奥特曼新作“奥特曼R/B”公布!网友:让国产奥特曼无地之容!
- 拓扑排序--Kitchen Plates
- 汇编语言入门·打印输出“Hello,Assembly”
- 清北+华五!中国最强的7所大学!北京重点支持落户!
- 水星迷你无线路由器ap模式 下要不要启用 dhcp服务器,水星(Mercury)Mini无线路由器Router模式设置...
- Apache Dolphinscheduler3.0.0-beta-1 版本发布,新增FlinkSQL、Zeppelin任务类型
- 数据科学分布——卡方分布
- 鸿蒙心理测评中心,最近很火的心理测试:你第一眼看到的是什么?测出你的背后隐藏性格!...
- 2月15日,OpenCenter踏步而来
- Android 设计模式