使用Kongzue全家桶组件创建项目全攻略(二、跳转,权限,我闭着眼~(上))

[更新于 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作为参数控制器:


JumpParameter

JumpParameter与Intent不同的是,它对携带参数的类型没有限制,无论是一个Bitmap还是自定义的类都可以轻松传递到目标Activity。

丢过去,还回来!

jump对于需要返回值的场景,也进行了简化,以往我们由界面A跳转至界面B,需要从B界面操作完成后返回A界面数据,这是一个相当麻烦的事情,无论是对于需要重写startActivityForResult()、亦或者是onActivityResult()还有setResult()都显得相当的繁琐和麻烦。
而在jump中,我们默认可以实现一个回传监听器,会在我们从B界面返回A界面后触发,将B界面中需要带回的数据携带回来。

首先,我们需要在设置跳转时加入回传监听器的实现:


JumpParameter

接下来,在目标跳转界面AimActivity中通过setResponse方法设置返回数据:


setResponse

当我们回到原界面时,就会在回传监听器中返回这个JumpParameter了。

常用的跳转,也没那么麻烦

我们常有个需求,此处需要跳转到浏览器打开一个网址,又或者是此处需要跳转到系统设置,亦或者是此处需要跳转到系统设置的App详情页,还有需要打开某个App,每次都去百度这些代码么?或者去辛苦背诵这些跳转需要携带的Intent参数?在BaseFramework中统统不需要,只需要一句话即可完成这些操作:


Others

动态申请权限,也帮你搞定!

跳转解决完了,权限也一并解决了吧?
权限申请也是相较于跳转一样让人头疼的问题,特别是对于targetSdkVersion >= Android 6以上的应用而言,到处都要申请权限,如何让这件事变得更加优雅而简洁就是BaseFramework对于权限申请进行封装的目标。

第一步,定义权限
首先别忘了在AndroidManifest.xml中声明你要的所有权限,用归用,不提前声明可不行,我在这里选择了几个比较常见的权限进行范例演示:


AndroidManifest中声明的权限

接下来,我们在需要申请这些权限的场景,把他们列为集合:


权限集合

接下来就是重点啦,一句话申请!
申请权限

只需要调用requestPermission方法并传递刚刚写好的权限集合,并设置回调监听器即可轻松完成权限的申请,更加高效易用。

顺带一说,图中的toast()方法也是BaseFramework自带的,简化版的吐司提示,编写更加简单。

BaseFramework还有许多自带的小工具和用法,具体可以参照相关文档进行开发:

https://github.com/kongzue/BaseFramework

咕咕咕咕咕咕...

好吧,这是个系列文章,第二篇主要是跳转和权限处理相关的事情,先讲到这里,后续的坑还有玩转Kongzue对话框组件以及高效开发篇,有生之年一定写完,敬请期待!
另外喜欢本系列文章请点一下下边的喜欢,你的支持是我前进的动力!

已发布的目录:

一、引入和沉浸式的那些事儿

二、跳转,权限,我闭着眼~(上)

二、跳转,权限,我闭着眼~(下)

你可能感兴趣的:(使用Kongzue全家桶组件创建项目全攻略(二、跳转,权限,我闭着眼~(上)))