Skip to content

Commit 93315a6

Browse files
authored
Merge pull request Blankj#1235 from githubsdk/develop
unity调用浮窗申请权限时可能遇到的Bug
2 parents 1fb4080 + a546274 commit 93315a6

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

lib/utilcode/src/main/java/com/blankj/utilcode/util/PermissionUtils.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,8 @@ static final class PermissionActivityImpl extends UtilsTransActivity.TransActivi
368368
private static final int TYPE_WRITE_SETTINGS = 0x02;
369369
private static final int TYPE_DRAW_OVERLAYS = 0x03;
370370

371+
private static int currentRequestCode = -1;
372+
371373
private static PermissionActivityImpl INSTANCE = new PermissionActivityImpl();
372374

373375
public static void start(final int type) {
@@ -403,8 +405,10 @@ public void run() {
403405
}
404406
requestPermissions(activity);
405407
} else if (type == TYPE_WRITE_SETTINGS) {
408+
currentRequestCode = TYPE_WRITE_SETTINGS;
406409
startWriteSettingsActivity(activity, TYPE_WRITE_SETTINGS);
407410
} else if (type == TYPE_DRAW_OVERLAYS) {
411+
currentRequestCode = TYPE_DRAW_OVERLAYS;
408412
startOverlayPermissionActivity(activity, TYPE_DRAW_OVERLAYS);
409413
} else {
410414
activity.finish();
@@ -441,9 +445,22 @@ public boolean dispatchTouchEvent(UtilsTransActivity activity, MotionEvent ev) {
441445
return true;
442446
}
443447

448+
@Override
449+
public void onDestroy(final UtilsTransActivity activity) {
450+
//如果是unity调用,app从后台切回,当前activity会被强制关闭,此时正常流程不会触发,所以在这里检测
451+
if (currentRequestCode != -1) {
452+
checkRequestCallback(currentRequestCode);
453+
currentRequestCode = -1;
454+
}
455+
super.onDestroy(activity);
456+
}
457+
444458
@Override
445459
public void onActivityResult(UtilsTransActivity activity, int requestCode, int resultCode, Intent data) {
446460
activity.finish();
461+
}
462+
463+
private void checkRequestCallback(int requestCode) {
447464
if (requestCode == TYPE_WRITE_SETTINGS) {
448465
if (sSimpleCallback4WriteSettings == null) return;
449466
if (isGrantedWriteSettings()) {

0 commit comments

Comments
 (0)