@@ -368,6 +368,8 @@ static final class PermissionActivityImpl extends UtilsTransActivity.TransActivi
368
368
private static final int TYPE_WRITE_SETTINGS = 0x02;
369
369
private static final int TYPE_DRAW_OVERLAYS = 0x03;
370
370
371
+ private static int currentRequestCode = -1;
372
+
371
373
private static PermissionActivityImpl INSTANCE = new PermissionActivityImpl();
372
374
373
375
public static void start(final int type) {
@@ -403,8 +405,10 @@ public void run() {
403
405
}
404
406
requestPermissions(activity);
405
407
} else if (type == TYPE_WRITE_SETTINGS) {
408
+ currentRequestCode = TYPE_WRITE_SETTINGS;
406
409
startWriteSettingsActivity(activity, TYPE_WRITE_SETTINGS);
407
410
} else if (type == TYPE_DRAW_OVERLAYS) {
411
+ currentRequestCode = TYPE_DRAW_OVERLAYS;
408
412
startOverlayPermissionActivity(activity, TYPE_DRAW_OVERLAYS);
409
413
} else {
410
414
activity.finish();
@@ -441,8 +445,22 @@ public boolean dispatchTouchEvent(UtilsTransActivity activity, MotionEvent ev) {
441
445
return true;
442
446
}
443
447
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
+
444
458
@Override
445
459
public void onActivityResult(UtilsTransActivity activity, int requestCode, int resultCode, Intent data) {
460
+ activity.finish();
461
+ }
462
+
463
+ private void checkRequestCallback(int requestCode) {
446
464
if (requestCode == TYPE_WRITE_SETTINGS) {
447
465
if (sSimpleCallback4WriteSettings == null) return;
448
466
if (isGrantedWriteSettings()) {
@@ -465,7 +483,6 @@ public void run() {
465
483
}
466
484
}, 100);
467
485
}
468
- activity.finish();
469
486
}
470
487
}
471
488
0 commit comments