summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/ActivityManager.java24
-rw-r--r--core/java/android/app/IActivityManager.aidl6
2 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 8753b986f2df..67a59f1975d5 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -4532,6 +4532,30 @@ public class ActivityManager {
}
/**
+ * Kill the given PIDs, but the killing will be delayed until the device is idle
+ * and the given process is imperceptible.
+ *
+ * <p>You must hold the permission
+ * {@link android.Manifest.permission#FORCE_STOP_PACKAGES} to be able to
+ * call this method.
+ * </p>
+ *
+ * @param pids The list of the pids to be killed
+ * @pram reason The reason of the kill
+ *
+ * @hide
+ */
+ @SystemApi @TestApi
+ @RequiresPermission(Manifest.permission.FORCE_STOP_PACKAGES)
+ public void killProcessesWhenImperceptible(@NonNull int[] pids, @NonNull String reason) {
+ try {
+ getService().killProcessesWhenImperceptible(pids, reason);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ /**
* The AppTask allows you to manage your own application's tasks.
* See {@link android.app.ActivityManager#getAppTasks()}
*/
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 126cc5a6f5c4..7d04ca0afe7e 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -631,4 +631,10 @@ interface IActivityManager {
*/
ParceledListSlice<ApplicationExitInfo> getHistoricalProcessExitReasons(String packageName,
int pid, int maxNum, int userId);
+
+ /*
+ * Kill the given PIDs, but the killing will be delayed until the device is idle
+ * and the given process is imperceptible.
+ */
+ void killProcessesWhenImperceptible(in int[] pids, String reason);
}