diff --git a/src/libs/Maui.Android.InAppUpdates/Platforms/Android/AppUpdateSuccessListener.cs b/src/libs/Maui.Android.InAppUpdates/Platforms/Android/AppUpdateSuccessListener.cs index 09116ef..1cda59f 100644 --- a/src/libs/Maui.Android.InAppUpdates/Platforms/Android/AppUpdateSuccessListener.cs +++ b/src/libs/Maui.Android.InAppUpdates/Platforms/Android/AppUpdateSuccessListener.cs @@ -16,6 +16,11 @@ public class AppUpdateSuccessListener( public void OnSuccess(Java.Lang.Object? result) { + if (activity.IsFinishing || activity.IsDestroyed) + { + return; + } + if (result is not AppUpdateInfo info) { return; @@ -69,4 +74,4 @@ public void OnSuccess(Java.Lang.Object? result) break; } } -} \ No newline at end of file +} diff --git a/src/libs/Maui.Android.InAppUpdates/Platforms/Android/Handler.cs b/src/libs/Maui.Android.InAppUpdates/Platforms/Android/Handler.cs index c645c4a..60f2eba 100644 --- a/src/libs/Maui.Android.InAppUpdates/Platforms/Android/Handler.cs +++ b/src/libs/Maui.Android.InAppUpdates/Platforms/Android/Handler.cs @@ -40,10 +40,11 @@ public static void HandleCreate(Activity activity, Bundle? savedInstanceState) AppUpdateManager = Options.UseFakeAppUpdateManager ? new FakeAppUpdateManager(activity) : AppUpdateManagerFactory.Create(activity); - AppUpdateSuccessListener ??= new AppUpdateSuccessListener( + AppUpdateSuccessListener = new AppUpdateSuccessListener( appUpdateManager: AppUpdateManager, activity: activity, updateRequest: Options.RequestCode); + AppUpdateManager.GetAppUpdateInfo().AddOnSuccessListener(AppUpdateSuccessListener); } @@ -58,10 +59,11 @@ public static void HandleResume(Activity activity) return; } - ResumeSuccessListener ??= new ResumeSuccessListener( + ResumeSuccessListener = new ResumeSuccessListener( appUpdateManager: AppUpdateManager, activity: activity, updateRequest: Options.RequestCode); + AppUpdateManager.GetAppUpdateInfo().AddOnSuccessListener(ResumeSuccessListener); } @@ -99,4 +101,4 @@ public static void HandleActivityResult( break; } } -} \ No newline at end of file +}