[更新于 2018.11.30]
前言
本文主要介绍如何使用在Github开源的Kongzue全家桶组件快速创建新项目,以及处理响应式、权限等操作的方法。
本文中演示的步骤成品将会在最终开源至Github,有兴趣可以前往下载(https://github.com/kongzue/Example)。
本篇将继续讲述Kongzue全家桶组件中跳转和权限的那些事儿。
Jump!真的跳!一起跳!
跳转这事儿算是Android开发中相当常见的操作了,以往我们通常使用startActivity进行界面间的跳转,但一般来说我们必须先创建一个Intent作为跳转参数,然后将它传递到startActivity方法中进行跳转,但对于最为常用的无条件(参数)跳转,这样的语句就显得有些臃肿了:
startActivity(new Intent(MainActivity.this,AimActivity.class));
虽然不算复杂,但每一次跳转都要写就显得有些麻烦了。
在BaseFramework的基础组件BaseActivity和BaseFragment中则提供了了一种更为有效的封装方法:jump
原先冗长的startActivity语句被简化成为一句jump,更具节奏感,编写起来也更为简单:
jump(AimActivity.class);
而对于需要传递参数的场景,则使用了JumpParameter作为参数控制器:
![](https://img.haomeiwen.com/i1976622/655caddb7db73051.png)
JumpParameter与Intent不同的是,它对携带参数的类型没有限制,无论是一个Bitmap还是自定义的类都可以轻松传递到目标Activity。
丢过去,还回来!
jump对于需要返回值的场景,也进行了简化,以往我们由界面A跳转至界面B,需要从B界面操作完成后返回A界面数据,这是一个相当麻烦的事情,无论是对于需要重写startActivityForResult()、亦或者是onActivityResult()还有setResult()都显得相当的繁琐和麻烦。
而在jump中,我们默认可以实现一个回传监听器,会在我们从B界面返回A界面后触发,将B界面中需要带回的数据携带回来。
首先,我们需要在设置跳转时加入回传监听器的实现:
![](https://img.haomeiwen.com/i1976622/85534f5e3d3e36f6.png)
接下来,在目标跳转界面AimActivity中通过setResponse方法设置返回数据:
![](https://img.haomeiwen.com/i1976622/62e7c5b2f2ae5b62.png)
当我们回到原界面时,就会在回传监听器中返回这个JumpParameter了。
常用的跳转,也没那么麻烦
我们常有个需求,此处需要跳转到浏览器打开一个网址,又或者是此处需要跳转到系统设置,亦或者是此处需要跳转到系统设置的App详情页,还有需要打开某个App,每次都去百度这些代码么?或者去辛苦背诵这些跳转需要携带的Intent参数?在BaseFramework中统统不需要,只需要一句话即可完成这些操作:
![](https://img.haomeiwen.com/i1976622/daa77bb00ad4ca0f.png)
动态申请权限,也帮你搞定!
跳转解决完了,权限也一并解决了吧?
权限申请也是相较于跳转一样让人头疼的问题,特别是对于targetSdkVersion >= Android 6以上的应用而言,到处都要申请权限,如何让这件事变得更加优雅而简洁就是BaseFramework对于权限申请进行封装的目标。
第一步,定义权限
首先别忘了在AndroidManifest.xml中声明你要的所有权限,用归用,不提前声明可不行,我在这里选择了几个比较常见的权限进行范例演示:
![](https://img.haomeiwen.com/i1976622/db7b622801bac969.png)
接下来,我们在需要申请这些权限的场景,把他们列为集合:
![](https://img.haomeiwen.com/i1976622/a7e861d353aeaa0c.png)
接下来就是重点啦,一句话申请!
![](https://img.haomeiwen.com/i1976622/d4cf20d699b8ae93.png)
只需要调用requestPermission方法并传递刚刚写好的权限集合,并设置回调监听器即可轻松完成权限的申请,更加高效易用。
顺带一说,图中的toast()方法也是BaseFramework自带的,简化版的吐司提示,编写更加简单。
BaseFramework还有许多自带的小工具和用法,具体可以参照相关文档进行开发:
https://github.com/kongzue/BaseFramework
咕咕咕咕咕咕...
好吧,这是个系列文章,第二篇主要是跳转和权限处理相关的事情,先讲到这里,后续的坑还有玩转Kongzue对话框组件以及高效开发篇,有生之年一定写完,敬请期待!
另外喜欢本系列文章请点一下下边的喜欢,你的支持是我前进的动力!
已发布的目录:
网友评论