写第一篇博文就花了我一个上午的时间又传demo什么七七八八的看来写博文也要一定精力的呢,继续坚持写下去吧!
这是第二篇咯,这个工具项目中用处会非常大,以前10几行的代码用这个两三行就可以解决了!
次工具类要解决的问题是我们调用
startActivityForResult(intent,requestCode);
而结果却要在
public void onActivityResult(int requestCode, int resultCode, Intent data) {}
方法里面去哪如果代码多了的话就会显得比较乱,还需要每个调用都要声明个requestCode,如果是权限申请也是非常的麻烦也是比较麻烦,比如调用相册获取图片之前还要申请权限如此就会让代码看起来特别啰嗦。
我目前的解决办法是只要给一个静态风阀传递一个结构体和一个回调就可以解决以上所有问题,让代码调用起来既好看又方便,简单的原理就是用一层fragment去代理这些请求,然后把结果回传给指定的回调对象,我的代码里面每行注释都写的很清楚大家可以细看,次工具我已经应用到我们自己的项目中了,而且完全正常运行,完全不用考虑是在fragment或者是activty里面操作可谓完全结构,可以直接当成一个工具类来使用。
具体事例:
单单申请权限的代码
EyRequest.Builder builder = EyRequest.Builder();
//检查内存卡读取权限
builder.addPermissions(Manifest.permission.READ_EXTERNAL_STORAGE);
builder.addPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE);
ActivityResult.create(mActivity).startPermissions(builder.build(), new ActivityResult.PermissionsBack() {
@Override
public void PermissionsResult() {
//权限申请成功会执行里面的内容
}
});
调用activity并处理回调比如拍照
EyRequest.Builder builder = EyRequest.Builder();
builder.setIntent(intent); //intent为拍照的intent
builder.addPermissions(Manifest.permission.READ_EXTERNAL_STORAGE);//检查内存卡读取权限
ActivityResult.create(context).startActivityWithResult(builder.build(), new ActivityResult.OnActivityBack() {
@Override
public void OnActivityResult(Intent intent) {
//此处的内容就是权限都通过后回传的intent
}
});
最后DEMO 已经上传如果你要使用的话只要引用我的库就行了。。
话说那些什么组件开发是不是就是把自己的功能打成一个module就是组件化了?????
DEMO下载地址
https://download.csdn.net/download/lizefeng19/10772808
看是不是比我们之前写的代码简单多了,同时申请权限和拍照我们只要调用一个方法就可以搞定,再也不用命名那么多的requestCode代码是相当简洁,这部分的代码还比较多我还知道怎么上传,等研究研究看能不能打包成一个第三方库直接用吧。