Loading services/core/java/com/android/server/am/BroadcastQueue.java +11 −16 Original line number Diff line number Diff line Loading @@ -294,28 +294,23 @@ public final class BroadcastQueue { } public void skipCurrentReceiverLocked(ProcessRecord app) { boolean reschedule = false; BroadcastRecord r = app.curReceiver; if (r != null && r.queue == this) { // The current broadcast is waiting for this app's receiver // to be finished. Looks like that's not going to happen, so // let the broadcast continue. logBroadcastReceiverDiscardLocked(r); finishReceiverLocked(r, r.resultCode, r.resultData, r.resultExtras, r.resultAbort, false); reschedule = true; BroadcastRecord r = null; if (mOrderedBroadcasts.size() > 0) { BroadcastRecord br = mOrderedBroadcasts.get(0); if (br.curApp == app) { r = br; } r = mPendingBroadcast; if (r != null && r.curApp == app) { } if (r == null && mPendingBroadcast != null && mPendingBroadcast.curApp == app) { if (DEBUG_BROADCAST) Slog.v(TAG, "[" + mQueueName + "] skip & discard pending app " + r); r = mPendingBroadcast; } if (r != null) { logBroadcastReceiverDiscardLocked(r); finishReceiverLocked(r, r.resultCode, r.resultData, r.resultExtras, r.resultAbort, false); reschedule = true; } if (reschedule) { scheduleBroadcastsLocked(); } } Loading Loading
services/core/java/com/android/server/am/BroadcastQueue.java +11 −16 Original line number Diff line number Diff line Loading @@ -294,28 +294,23 @@ public final class BroadcastQueue { } public void skipCurrentReceiverLocked(ProcessRecord app) { boolean reschedule = false; BroadcastRecord r = app.curReceiver; if (r != null && r.queue == this) { // The current broadcast is waiting for this app's receiver // to be finished. Looks like that's not going to happen, so // let the broadcast continue. logBroadcastReceiverDiscardLocked(r); finishReceiverLocked(r, r.resultCode, r.resultData, r.resultExtras, r.resultAbort, false); reschedule = true; BroadcastRecord r = null; if (mOrderedBroadcasts.size() > 0) { BroadcastRecord br = mOrderedBroadcasts.get(0); if (br.curApp == app) { r = br; } r = mPendingBroadcast; if (r != null && r.curApp == app) { } if (r == null && mPendingBroadcast != null && mPendingBroadcast.curApp == app) { if (DEBUG_BROADCAST) Slog.v(TAG, "[" + mQueueName + "] skip & discard pending app " + r); r = mPendingBroadcast; } if (r != null) { logBroadcastReceiverDiscardLocked(r); finishReceiverLocked(r, r.resultCode, r.resultData, r.resultExtras, r.resultAbort, false); reschedule = true; } if (reschedule) { scheduleBroadcastsLocked(); } } Loading