Loading services/core/java/com/android/server/am/BroadcastQueue.java +12 −10 Original line number Diff line number Diff line Loading @@ -16,15 +16,7 @@ package com.android.server.am; import android.content.pm.IPackageManager; import android.content.pm.PermissionInfo; import android.os.Trace; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Set; import static com.android.server.am.ActivityManagerDebugConfig.*; import android.app.ActivityManager; import android.app.AppGlobals; Loading @@ -37,7 +29,9 @@ import android.content.IIntentSender; import android.content.Intent; import android.content.IntentSender; import android.content.pm.ActivityInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.Handler; Loading @@ -47,13 +41,19 @@ import android.os.Message; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; import android.os.Trace; import android.os.UserHandle; import android.util.EventLog; import android.util.Slog; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import static com.android.server.am.ActivityManagerDebugConfig.*; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Set; /** * BROADCASTS Loading Loading @@ -409,10 +409,12 @@ public final class BroadcastQueue { String resultData, Bundle resultExtras, boolean resultAbort, boolean waitForServices) { final int state = r.state; final ActivityInfo receiver = r.curReceiver; final long finishTime = SystemClock.uptimeMillis(); r.state = BroadcastRecord.IDLE; if (state == BroadcastRecord.IDLE) { Slog.w(TAG, "finishReceiver [" + mQueueName + "] called but state is IDLE"); } r.duration[r.nextReceiver - 1] = finishTime - r.receiverTime; r.receiver = null; r.intent.setComponent(null); if (r.curApp != null && r.curApp.curReceivers.contains(r)) { Loading services/core/java/com/android/server/am/BroadcastRecord.java +5 −1 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ package com.android.server.am; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.content.IIntentReceiver; import android.content.ComponentName; import android.content.IIntentReceiver; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ResolveInfo; Loading Loading @@ -62,6 +62,7 @@ final class BroadcastRecord extends Binder { final BroadcastOptions options; // BroadcastOptions supplied by caller final List receivers; // contains BroadcastFilter and ResolveInfo final int[] delivery; // delivery state of each receiver final long[] duration; // duration a receiver took to process broadcast IIntentReceiver resultTo; // who receives final result if non-null long enqueueClockTime; // the clock time the broadcast was enqueued long dispatchTime; // when dispatch started on this set of receivers Loading Loading @@ -203,6 +204,7 @@ final class BroadcastRecord extends Binder { case DELIVERY_TIMEOUT: pw.print("Timeout"); break; default: pw.print("???????"); break; } pw.print(" "); TimeUtils.formatDuration(duration[i], pw); pw.print(" #"); pw.print(i); pw.print(": "); if (o instanceof BroadcastFilter) { pw.println(o); Loading Loading @@ -239,6 +241,7 @@ final class BroadcastRecord extends Binder { options = _options; receivers = _receivers; delivery = new int[_receivers != null ? _receivers.size() : 0]; duration = new long[delivery.length]; resultTo = _resultTo; resultCode = _resultCode; resultData = _resultData; Loading Loading @@ -274,6 +277,7 @@ final class BroadcastRecord extends Binder { options = from.options; receivers = from.receivers; delivery = from.delivery; duration = from.duration; resultTo = from.resultTo; enqueueClockTime = from.enqueueClockTime; dispatchTime = from.dispatchTime; Loading Loading
services/core/java/com/android/server/am/BroadcastQueue.java +12 −10 Original line number Diff line number Diff line Loading @@ -16,15 +16,7 @@ package com.android.server.am; import android.content.pm.IPackageManager; import android.content.pm.PermissionInfo; import android.os.Trace; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Set; import static com.android.server.am.ActivityManagerDebugConfig.*; import android.app.ActivityManager; import android.app.AppGlobals; Loading @@ -37,7 +29,9 @@ import android.content.IIntentSender; import android.content.Intent; import android.content.IntentSender; import android.content.pm.ActivityInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.os.Bundle; import android.os.Handler; Loading @@ -47,13 +41,19 @@ import android.os.Message; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; import android.os.Trace; import android.os.UserHandle; import android.util.EventLog; import android.util.Slog; import android.util.TimeUtils; import android.util.proto.ProtoOutputStream; import static com.android.server.am.ActivityManagerDebugConfig.*; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Set; /** * BROADCASTS Loading Loading @@ -409,10 +409,12 @@ public final class BroadcastQueue { String resultData, Bundle resultExtras, boolean resultAbort, boolean waitForServices) { final int state = r.state; final ActivityInfo receiver = r.curReceiver; final long finishTime = SystemClock.uptimeMillis(); r.state = BroadcastRecord.IDLE; if (state == BroadcastRecord.IDLE) { Slog.w(TAG, "finishReceiver [" + mQueueName + "] called but state is IDLE"); } r.duration[r.nextReceiver - 1] = finishTime - r.receiverTime; r.receiver = null; r.intent.setComponent(null); if (r.curApp != null && r.curApp.curReceivers.contains(r)) { Loading
services/core/java/com/android/server/am/BroadcastRecord.java +5 −1 Original line number Diff line number Diff line Loading @@ -18,8 +18,8 @@ package com.android.server.am; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.content.IIntentReceiver; import android.content.ComponentName; import android.content.IIntentReceiver; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ResolveInfo; Loading Loading @@ -62,6 +62,7 @@ final class BroadcastRecord extends Binder { final BroadcastOptions options; // BroadcastOptions supplied by caller final List receivers; // contains BroadcastFilter and ResolveInfo final int[] delivery; // delivery state of each receiver final long[] duration; // duration a receiver took to process broadcast IIntentReceiver resultTo; // who receives final result if non-null long enqueueClockTime; // the clock time the broadcast was enqueued long dispatchTime; // when dispatch started on this set of receivers Loading Loading @@ -203,6 +204,7 @@ final class BroadcastRecord extends Binder { case DELIVERY_TIMEOUT: pw.print("Timeout"); break; default: pw.print("???????"); break; } pw.print(" "); TimeUtils.formatDuration(duration[i], pw); pw.print(" #"); pw.print(i); pw.print(": "); if (o instanceof BroadcastFilter) { pw.println(o); Loading Loading @@ -239,6 +241,7 @@ final class BroadcastRecord extends Binder { options = _options; receivers = _receivers; delivery = new int[_receivers != null ? _receivers.size() : 0]; duration = new long[delivery.length]; resultTo = _resultTo; resultCode = _resultCode; resultData = _resultData; Loading Loading @@ -274,6 +277,7 @@ final class BroadcastRecord extends Binder { options = from.options; receivers = from.receivers; delivery = from.delivery; duration = from.duration; resultTo = from.resultTo; enqueueClockTime = from.enqueueClockTime; dispatchTime = from.dispatchTime; Loading