@@ -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,9 +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 ) {
446
460
activity .finish ();
461
+ }
462
+
463
+ private void checkRequestCallback (int requestCode ) {
447
464
if (requestCode == TYPE_WRITE_SETTINGS ) {
448
465
if (sSimpleCallback4WriteSettings == null ) return ;
449
466
if (isGrantedWriteSettings ()) {
0 commit comments