@@ -468,9 +468,7 @@ class EasyLoading {
468468 completer: completer,
469469 );
470470 completer.future.whenComplete (() {
471- for (final EasyLoadingStatusCallback callbackin _statusCallbacks) {
472- if (callback!= null )callback (EasyLoadingStatus .show);
473- }
471+ _callback (EasyLoadingStatus .show);
474472if (duration!= null ) {
475473_cancelTimer ();
476474 _timer= Timer .periodic (duration, (timer)async {
@@ -483,11 +481,13 @@ class EasyLoading {
483481return completer.future;
484482 }
485483
486- Future <void >_dismiss (bool animation) {
484+ Future <void >_dismiss (bool animation)async {
485+ if (key!= null && key.currentState== null ) {
486+ _reset ();
487+ return ;
488+ }
489+
487490return key? .currentState? .dismiss (animation)? .whenComplete (() {
488- for (final EasyLoadingStatusCallback callbackin _statusCallbacks) {
489- if (callback!= null )callback (EasyLoadingStatus .dismiss);
490- }
491491_reset ();
492492 });
493493 }
@@ -498,6 +498,13 @@ class EasyLoading {
498498 _progressKey= null ;
499499_cancelTimer ();
500500_markNeedsBuild ();
501+ _callback (EasyLoadingStatus .dismiss);
502+ }
503+
504+ void _callback (EasyLoadingStatus status) {
505+ for (final EasyLoadingStatusCallback callbackin _statusCallbacks) {
506+ if (callback!= null )callback (status);
507+ }
501508 }
502509
503510void _markNeedsBuild () {