Closed douya40 closed 6 years ago
严大看看这个问题呀
@douya40 @yanzhenjie 造成这个问题的原因是AlbumActivity不能立刻销毁,调用finish()后要2s多才能onDestroy()。导致第二次设置的Result和Cancel被置null。 对AlbumActivity.java做如下修改即可: 把这段代码
@Override
protected void onDestroy() {
mSizeFilter = null;
mMimeFilter = null;
mDurationFilter = null;
sResult = null;
sCancel = null;
super.onDestroy();
}
修改为:
@Override
public void finish() {
mSizeFilter = null;
mMimeFilter = null;
mDurationFilter = null;
sResult = null;
sCancel = null;
super.finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
这种情况下是存在这种问题的,就算改成你给出的代码也会出现。不建议连续这样调用,如果非要连续调用你可以延迟250ms+。 另外2.1.0版本会重构,但是还是不能完全避免这种问题,由于内部设计不适合延迟回调。
使用代码:单选图片 问题描述:反复停的选择图片,返回有弹框提醒,有的时候没有弹框提醒,会造成选择的图片没有返回,实际我是点击的,不稳定。有的时候返回有的时候就不返回了 private void selectImage(int requestCode) { Album.image(this) .singleChoice() .requestCode(requestCode) .camera(true) .columnCount(3) .widget( Widget.newDarkBuilder(_mActivity) .title("选择图片") .build() ) .onResult(new Action<ArrayList>() {
@Override
public void onAction(int requestCode, @NonNull ArrayList result) {
ToastUtils.show("requestCode");
compression(result.get(0).getPath(),requestCode);
}
})
.onCancel(new Action() {
@Override
public void onAction(int requestCode, @NonNull String result) {
Toast.makeText(_mActivity, R.string.canceled, Toast.LENGTH_LONG).show();
}
})
.start();
}