Merge "Fix window leak and receiver leak. Bug: 2520143 and Bug: 2517390"
This commit is contained in:
committed by
Android (Google) Code Review
commit
81a291440b
@@ -1320,6 +1320,11 @@ public class Activity extends ContextThemeWrapper
|
||||
}
|
||||
mManagedCursors.clear();
|
||||
}
|
||||
|
||||
// Close any open search dialog
|
||||
if (mSearchManager != null) {
|
||||
mSearchManager.stopSearch();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -132,6 +132,15 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
|
||||
// Last known IME options value for the search edit text.
|
||||
private int mSearchAutoCompleteImeOptions;
|
||||
|
||||
private BroadcastReceiver mConfChangeListener = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
|
||||
onConfigurationChanged();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor - fires it up and makes it look like the search UI.
|
||||
*
|
||||
@@ -149,16 +158,6 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
|
||||
mVoiceAppSearchIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
|
||||
mVoiceAppSearchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
mSearchManager = searchManager;
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
|
||||
context.registerReceiver(new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (intent.getAction().equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
|
||||
onConfigurationChanged();
|
||||
}
|
||||
}
|
||||
}, filter);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -297,10 +296,20 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
|
||||
show();
|
||||
}
|
||||
updateUI();
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
|
||||
// Register a listener for configuration change events.
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(Intent.ACTION_CONFIGURATION_CHANGED);
|
||||
getContext().registerReceiver(mConfChangeListener, filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* The search dialog is being dismissed, so handle all of the local shutdown operations.
|
||||
*
|
||||
@@ -311,6 +320,8 @@ public class SearchDialog extends Dialog implements OnItemClickListener, OnItemS
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
|
||||
getContext().unregisterReceiver(mConfChangeListener);
|
||||
|
||||
closeSuggestionsAdapter();
|
||||
|
||||
// dump extra memory we're hanging on to
|
||||
|
||||
Reference in New Issue
Block a user