之前运用过Fragment对Android动态运行时权限进行封装,避免了每次都需要onRequestPermissionsResult 回调处理。同理,也可以用同样的方式对 Activity的onActivityResult 回调进行封装。常用的想到了调用系统相机进行拍摄以及获取系统相册的图片。
RouterFragment 中间层
RouterFragment 起到一个中间层的作用。主要用来发起请求和接收回调,通过回调接口,将数据结果回调到调用类。先来看看 RouterFragment 主要代码。
createRequestCode
随机生成一定范围内的code,用于和回调的Callback进行一对一的缓存
private int createRequestCode() {
int requestCode;
int tryCount = 0;
do {
requestCode = mCodeGenerator.nextInt(0x0000FFFF);
tryCount++;
} while (mCallBacks.indexOfKey(requestCode) >= 0 && tryCount < MAX_TRY_COUNT);
return requestCode;
}
startActivityforResult
调用跳转的地方,并且将Callback进行缓存
public void startActivityforResult(Intent intent, CaptureHelper.Callback callback){
int requestCode = createRequest