From bd5729b7dc34882403512885b7ef69e8bf7ace0e Mon Sep 17 00:00:00 2001 From: Mikhail Malakhov Date: Thu, 20 Oct 2016 22:45:18 +0300 Subject: [PATCH] Sometime, Settings app crash when AllowBindAppWidgetActivity closing Process: com.android.settings E AndroidRuntime: java.lang.RuntimeException: Unable to destroy activity {com.android.settings/ com.android.settings.AllowBindAppWidgetActivity}: java.lang.IllegalArgumentException: Receiver not registered: android.app.Activity$1@5817135 Change-Id: I0f8b61f4c1772b43bffd949928ccaafd295f5fac Signed-off-by: Mikhail Malakhov --- .../settings/AllowBindAppWidgetActivity.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/AllowBindAppWidgetActivity.java b/src/com/android/settings/AllowBindAppWidgetActivity.java index c3bf78ab512..b015b681155 100644 --- a/src/com/android/settings/AllowBindAppWidgetActivity.java +++ b/src/com/android/settings/AllowBindAppWidgetActivity.java @@ -51,9 +51,8 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements private boolean mClicked; public void onClick(DialogInterface dialog, int which) { + mClicked = true; if (which == AlertDialog.BUTTON_POSITIVE) { - // By default, set the result to cancelled - setResult(RESULT_CANCELED); if (mAppWidgetId != -1 && mComponentName != null && mCallingPackage != null) { try { final boolean bound = mAppWidgetManager.bindAppWidgetIdIfAllowed(mAppWidgetId, @@ -79,15 +78,18 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements finish(); } + @Override protected void onPause() { - if (isDestroyed() && !mClicked) { - setResult(RESULT_CANCELED); + if (!mClicked) { // RESULT_CANCELED + finish(); } - super.onDestroy(); + super.onPause(); } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setResult(RESULT_CANCELED); // By default, set the result to cancelled Intent intent = getIntent(); CharSequence label = ""; if (intent != null) { @@ -109,7 +111,6 @@ public class AllowBindAppWidgetActivity extends AlertActivity implements mComponentName = null; mCallingPackage = null; Log.v("BIND_APPWIDGET", "Error getting parameters"); - setResult(RESULT_CANCELED); finish(); return; }