一个方法搞定安卓路由跳转
前言
团队分模块开发在大项目上很常见,但项目组A想跳转到一个项目组B负责的Activity,此时若B未创建该Activity,则会影响项目进度,由此,安卓路由跳转出现了
原理
原理比较简单,大家都知道Context.startActivity()这个方法需要传一个Context和需要启动的Activity的Class类,而该方法就是利用运行时根据包名.类名来找到Class对象,然后使用Context.startActivity()来跳转
代码实现
Java,使用了工具类静态方法
public class JumpUtil {/*** 路由跳转** @param context 上下文* @param activityPath 要跳转的类的全包名.类名* @param bundle 要传递的参数*/public static void jump(Context context, String activityPath, Bundle bundle) {if (TextUtils.isEmpty(activityPath))return;try {Intent intent = new Intent(context, Class.forName(activityPath));if (bundle != null)intent.putExtras(bundle);context.startActivity(intent);} catch (ClassNotFoundException e) {e.printStackTrace();}}
}使用
JumpUtil.jump(this, "com.lt.mylibrary.LibraryActivity", null);
Kotlin,使用了扩展方法实现
/*** 路由跳转,使用Context调用即可* @param activityPath 要跳转的类的全包名.类名* @param bundle 要传递的参数*/
fun Context.jump(activityPath: String, bundle: Bundle? = null) {if (TextUtils.isEmpty(activityPath))returntry {startActivity(Intent(this@jump, Class.forName(activityPath)).apply {if (bundle != null)this@apply.putExtras(bundle)})} catch (e: ClassNotFoundException) {e.printStackTrace()}
}Context的子类内使用
jump("com.lt.mylibrary.LibraryActivity")
注意事项
- 要跳转的类所在的module必须被主模块或当前模块引用,否则会找不到Class对象
- 传入值必须是全包名.对象名,否则找不到Class对象
- 可以对包名的String串进行封装,可以降低出错率
- 比较规范的命名方式可以减少书写错误
- 路由启动Service可以自行扩展
一个方法搞定安卓路由跳转相关推荐
- 手机android id修改密码,手机锁屏密码忘了?一个方法搞定
今天,我们就分几种情况来解决这个难题. 如何清除苹果手机的锁屏密码你有手机注册时的ID和密码: iTunes软件界面 那很好办,如上图,电脑上下载iTunes软件进行恢复出厂即可,这样就可以清除密码. ...
- border渐变 ios_iOS一个方法搞定view渐变色
Demo 使用效果//包含头文件UIView+Gradient.h [self.label setGradientBackgroundWithColors:@[[UIColor redColor],[ ...
- 仅一个方法搞定Flutter Http Dio 请求
首先 pubspec.yaml里面添加dio依赖模块 dio: ^3.0.10 由于 http请求常用的是GET和POST方法, 请求参数格式要么JSON,要么XML, 所以我在第一次封装dio ht ...
- 封装一个类搞定90%安卓客户端与服务器端交互
本实例封装了一个处理安卓客户端与服务器端交互的几个方法,对于中文乱码问题本实例也找到了解决方案.本例可以处理的场景如下: 1.与服务器端交互json数据. 2.Get方式与服务器端交互数据. 3.Po ...
- Xposed精品连载 | 一篇文章彻底搞定安卓刷机与Root
前言 adb与fastboot 开启开发者选项 开启USB调试 Bootloader解锁 如何进入Bootloader模式 刷机 Root 安卓是基于Linux内核的一个移动操作系统.在Linux这种 ...
- labview 重新启动后上次_还在为labview保存参数而苦恼吗?看看一个vi搞定全部
2020labview懒人参数存取-升级版 问题:项目编程过程中,参数存取是无论如何也没法避免的一个环节,因为程序设置完成后,下次再打开时如果要执行上次设置的参数,就需要加载上次保存的参数文件.那么以 ...
- php调用jssdk转发_php一个文件搞定微信jssdk配置
php一个文件搞定微信jssdk配置: 包括缓存,包括https通讯,获取微信access_token,签名什么的都有.但是防范性编程做得比较少,商业用的话,需要完善下代码. 使用姿势 ^ajax(C ...
- 通用人工智能最新突破!一个Transformer搞定一切
Datawhale干货 编辑:梦晨 鱼羊,来源:量子位 通用人工智能,还得看DeepMind. 这回,只一个模型,使用相同的权重,不仅把看家本领雅达利游戏玩得飞起. 和人类聊聊天.看图写话也不在话下. ...
- 计算机怎么用函数计算销售额排名,用Excel算TOP项销售额占比?一个公式搞定所有!...
原标题:用Excel算TOP项销售额占比?一个公式搞定所有! 作者 | 拉登Dony 来源 | 拉小登(id:ladengchupin) 今日目标: 计算Top项销售占比 昨天遇到了一个提问,非常的头 ...
最新文章
- HDU 1816, POJ 2723 Get Luffy Out(2-sat)
- python3爬虫初探(四)之文件保存
- 一款粉笔最近火了 世界各国数学家为什么集体囤粉笔
- linux mysql df_Linux基础:df命令总结
- NTKO控件安装:“不能装载文档控件,请在检查浏览器的选项中检查浏览器的安全设置”问题
- android 极光推送1011,极光推送 · OpenKit使用手册 · 看云
- WRF模式运行及相关问题的解决
- 科普|掀开马甲包的 “神秘面纱”
- 蓝牙键盘 android手机游戏,使用BluetoothHidDevice将安卓手机同时模拟成鼠标和键盘...
- linux中 #chmod –R 777 * 是什么意思
- Python学习笔记——网络通信过程
- 8.7 Meta learning元学习全面理解、MAML、Reptile
- 科大奥瑞物理实验——傅里叶光学
- 网站域名服务器加密,网站域名利用https防劫持方法
- ABAP SE54 视图簇
- (邱维声)高等代数课程笔记:行列式的性质
- python下载钉钉api_DingTalk SDK for Python
- HTTP调试工具:Fiddler介绍
- 创业文章:长风破浪会有时
- AIX7.1 编译igen错误,第三方xml parse lib load error