Copy resume callbacks list prior to making callbacks
- Starting a deferred activity can trigger a new callback to be added to the list while we are iterating it Bug: 136613192 Change-Id: I6690ab0695bb73f11bf343fb41e9fc86b4afec1b
This commit is contained in:
@@ -952,10 +952,14 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
|
|||||||
mHandler.removeCallbacks(mHandleDeferredResume);
|
mHandler.removeCallbacks(mHandleDeferredResume);
|
||||||
Utilities.postAsyncCallback(mHandler, mHandleDeferredResume);
|
Utilities.postAsyncCallback(mHandler, mHandleDeferredResume);
|
||||||
|
|
||||||
for (OnResumeCallback cb : mOnResumeCallbacks) {
|
if (!mOnResumeCallbacks.isEmpty()) {
|
||||||
cb.onLauncherResume();
|
final ArrayList<OnResumeCallback> resumeCallbacks = new ArrayList<>(mOnResumeCallbacks);
|
||||||
|
mOnResumeCallbacks.clear();
|
||||||
|
for (int i = resumeCallbacks.size() - 1; i >= 0; i--) {
|
||||||
|
resumeCallbacks.get(i).onLauncherResume();
|
||||||
|
}
|
||||||
|
resumeCallbacks.clear();
|
||||||
}
|
}
|
||||||
mOnResumeCallbacks.clear();
|
|
||||||
|
|
||||||
if (mLauncherCallbacks != null) {
|
if (mLauncherCallbacks != null) {
|
||||||
mLauncherCallbacks.onResume();
|
mLauncherCallbacks.onResume();
|
||||||
|
|||||||
Reference in New Issue
Block a user