public void broadcastCloseSystemDialogs(String reason) { synchronized (ActivityManagerService.this) { final Intent intent = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY | Intent.FLAG_RECEIVER_FOREGROUND); Slog.v(TAG_SERVICE,"hyj 19651 startServiceInPackage:"); if (reason != null) { Slog.v(TAG_SERVICE,"hyj 19653 startServiceInPackage:"); intent.putExtra("reason", reason); } broadcastIntentLocked(null, null, null, intent, null, null, 0, null, null, null, OP_NONE, null, false, false, -1, SYSTEM_UID, Binder.getCallingUid(), Binder.getCallingPid(), UserHandle.USER_ALL); } }
时间: 2024-02-14 14:19:12 浏览: 204
这段代码是 Android 系统 ActivityManagerService 类的一个方法,用于广播关闭系统对话框的意图。方法中创建了一个 `Intent` 对象,其 action 为 `Intent.ACTION_CLOSE_SYSTEM_DIALOGS`,flags 包括 `Intent.FLAG_RECEIVER_REGISTERED_ONLY` 和 `Intent.FLAG_RECEIVER_FOREGROUND`,表示只有在前台运行的接收器才会接收到该广播。如果传入的 `reason` 参数不为空,则将其通过 `putExtra()` 方法添加到 `Intent` 对象中。
最后,调用 `broadcastIntentLocked()` 方法发送广播,该方法会将广播发送给所有前台运行的接收器。
阅读全文