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 <malakhv@gmail.com>
This commit is contained in:
Mikhail Malakhov
2016-10-20 22:45:18 +03:00
parent 363c529dc6
commit bd5729b7dc

View File

@@ -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;
}