diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/ActivityManager.java | 24 | ||||
| -rw-r--r-- | core/java/android/app/IActivityManager.aidl | 6 |
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); } |
