From dd0c95047495f0a1760af0342eeb50f3a0d661d8 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Wed, 15 Jan 2020 05:30:36 +0100 Subject: [PATCH] unregister receiver in SelectCurrentDbActivity, closes https://github.com/PhilippC/keepass2android/issues/1111 --- .../SelectCurrentDbActivity.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/keepass2android/SelectCurrentDbActivity.cs b/src/keepass2android/SelectCurrentDbActivity.cs index 1dc70c26..a9e72a24 100644 --- a/src/keepass2android/SelectCurrentDbActivity.cs +++ b/src/keepass2android/SelectCurrentDbActivity.cs @@ -259,6 +259,16 @@ namespace keepass2android } + protected override void OnStop() + { + if (_intentReceiver != null) + { + UnregisterReceiver(_intentReceiver); + _intentReceiver = null; + } + base.OnStop(); + } + private bool GetIocFromViewIntent(Intent intent) { IOConnectionInfo ioc = new IOConnectionInfo(); @@ -437,7 +447,8 @@ namespace keepass2android //by leaving the app with the back button, the user probably wants to cancel the task //The activity might be resumed (through Android's recent tasks list), then use a NullTask: AppTask = new NullTask(); - Finish(); + if (!IsFinishing) + Finish(); } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) @@ -497,11 +508,13 @@ namespace keepass2android case KeePass.ExitCloseAfterTaskComplete: // Do not lock the database SetResult(KeePass.ExitCloseAfterTaskComplete); - Finish(); + if (!IsFinishing) + Finish(); break; case KeePass.ExitClose: SetResult(KeePass.ExitClose); - Finish(); + if (!IsFinishing) + Finish(); break; case KeePass.ExitReloadDb: