Loading core/java/android/app/job/JobService.java +27 −27 Original line number Diff line number Diff line Loading @@ -71,6 +71,33 @@ public abstract class JobService extends Service { return mEngine.getBinder(); } /** * Call this to inform the JobScheduler that the job has finished its work. When the * system receives this message, it releases the wakelock being held for the job. * <p> * You can request that the job be scheduled again by passing {@code true} as * the <code>wantsReschedule</code> parameter. This will apply back-off policy * for the job; this policy can be adjusted through the * {@link android.app.job.JobInfo.Builder#setBackoffCriteria(long, int)} method * when the job is originally scheduled. The job's initial * requirements are preserved when jobs are rescheduled, regardless of backed-off * policy. * <p class="note"> * A job running while the device is dozing will not be rescheduled with the normal back-off * policy. Instead, the job will be re-added to the queue and executed again during * a future idle maintenance window. * </p> * * @param params The parameters identifying this job, as supplied to * the job in the {@link #onStartJob(JobParameters)} callback. * @param wantsReschedule {@code true} if this job should be rescheduled according * to the back-off criteria specified when it was first scheduled; {@code false} * otherwise. */ public final void jobFinished(JobParameters params, boolean wantsReschedule) { mEngine.jobFinished(params, wantsReschedule); } /** * Called to indicate that the job has begun executing. Override this method with the * logic for your job. Like all other component lifecycle callbacks, this method executes Loading Loading @@ -127,31 +154,4 @@ public abstract class JobService extends Service { * to end the job entirely. Regardless of the value returned, your job must stop executing. */ public abstract boolean onStopJob(JobParameters params); /** * Call this to inform the JobScheduler that the job has finished its work. When the * system receives this message, it releases the wakelock being held for the job. * <p> * You can request that the job be scheduled again by passing {@code true} as * the <code>wantsReschedule</code> parameter. This will apply back-off policy * for the job; this policy can be adjusted through the * {@link android.app.job.JobInfo.Builder#setBackoffCriteria(long, int)} method * when the job is originally scheduled. The job's initial * requirements are preserved when jobs are rescheduled, regardless of backed-off * policy. * <p class="note"> * A job running while the device is dozing will not be rescheduled with the normal back-off * policy. Instead, the job will be re-added to the queue and executed again during * a future idle maintenance window. * </p> * * @param params The parameters identifying this job, as supplied to * the job in the {@link #onStartJob(JobParameters)} callback. * @param wantsReschedule {@code true} if this job should be rescheduled according * to the back-off criteria specified when it was first scheduled; {@code false} * otherwise. */ public final void jobFinished(JobParameters params, boolean wantsReschedule) { mEngine.jobFinished(params, wantsReschedule); } } core/java/android/app/usage/UsageStatsManagerInternal.java +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app.usage; import android.app.usage.AppStandby.StandbyBuckets; import android.content.ComponentName; import android.content.res.Configuration; Loading Loading @@ -90,6 +91,19 @@ public abstract class UsageStatsManagerInternal { */ public abstract boolean isAppIdle(String packageName, int uidForAppId, int userId); /** * Returns the app standby bucket that the app is currently in. This accessor does * <em>not</em> obfuscate instant apps. * * @param packageName * @param userId * @param nowElapsed The current time, in the elapsedRealtime time base * @return the AppStandby bucket code the app currently resides in. If the app is * unknown in the given user, STANDBY_BUCKET_NEVER is returned. */ @StandbyBuckets public abstract int getAppStandbyBucket(String packageName, int userId, long nowElapsed); /** * Returns all of the uids for a given user where all packages associating with that uid * are in the app idle state -- there are no associated apps that are not idle. This means Loading core/java/android/content/pm/PackageManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,14 @@ public abstract class PackageManagerInternal { public abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags, int filterCallingUid, int userId); /** * Do a straight uid lookup for the given package/application in the given user. * @see PackageManager#getPackageUidAsUser(String, int, int) * @return The app's uid, or < 0 if the package was not found in that user */ public abstract int getPackageUid(String packageName, @PackageInfoFlags int flags, int userId); /** * Retrieve all of the information we know about a particular package/application. * @param filterCallingUid The results will be filtered in the context of this UID instead Loading services/core/java/com/android/server/job/JobSchedulerInternal.java +12 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,18 @@ import java.util.List; */ public interface JobSchedulerInternal { // Bookkeeping about app standby bucket scheduling /** * The current bucket heartbeat ordinal */ long currentHeartbeat(); /** * Heartbeat ordinal at which the given standby bucket's jobs next become runnable */ long nextHeartbeatForBucket(int bucket); /** * Returns a list of pending jobs scheduled by the system service. */ Loading services/core/java/com/android/server/job/JobSchedulerService.java +239 −12 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/app/job/JobService.java +27 −27 Original line number Diff line number Diff line Loading @@ -71,6 +71,33 @@ public abstract class JobService extends Service { return mEngine.getBinder(); } /** * Call this to inform the JobScheduler that the job has finished its work. When the * system receives this message, it releases the wakelock being held for the job. * <p> * You can request that the job be scheduled again by passing {@code true} as * the <code>wantsReschedule</code> parameter. This will apply back-off policy * for the job; this policy can be adjusted through the * {@link android.app.job.JobInfo.Builder#setBackoffCriteria(long, int)} method * when the job is originally scheduled. The job's initial * requirements are preserved when jobs are rescheduled, regardless of backed-off * policy. * <p class="note"> * A job running while the device is dozing will not be rescheduled with the normal back-off * policy. Instead, the job will be re-added to the queue and executed again during * a future idle maintenance window. * </p> * * @param params The parameters identifying this job, as supplied to * the job in the {@link #onStartJob(JobParameters)} callback. * @param wantsReschedule {@code true} if this job should be rescheduled according * to the back-off criteria specified when it was first scheduled; {@code false} * otherwise. */ public final void jobFinished(JobParameters params, boolean wantsReschedule) { mEngine.jobFinished(params, wantsReschedule); } /** * Called to indicate that the job has begun executing. Override this method with the * logic for your job. Like all other component lifecycle callbacks, this method executes Loading Loading @@ -127,31 +154,4 @@ public abstract class JobService extends Service { * to end the job entirely. Regardless of the value returned, your job must stop executing. */ public abstract boolean onStopJob(JobParameters params); /** * Call this to inform the JobScheduler that the job has finished its work. When the * system receives this message, it releases the wakelock being held for the job. * <p> * You can request that the job be scheduled again by passing {@code true} as * the <code>wantsReschedule</code> parameter. This will apply back-off policy * for the job; this policy can be adjusted through the * {@link android.app.job.JobInfo.Builder#setBackoffCriteria(long, int)} method * when the job is originally scheduled. The job's initial * requirements are preserved when jobs are rescheduled, regardless of backed-off * policy. * <p class="note"> * A job running while the device is dozing will not be rescheduled with the normal back-off * policy. Instead, the job will be re-added to the queue and executed again during * a future idle maintenance window. * </p> * * @param params The parameters identifying this job, as supplied to * the job in the {@link #onStartJob(JobParameters)} callback. * @param wantsReschedule {@code true} if this job should be rescheduled according * to the back-off criteria specified when it was first scheduled; {@code false} * otherwise. */ public final void jobFinished(JobParameters params, boolean wantsReschedule) { mEngine.jobFinished(params, wantsReschedule); } }
core/java/android/app/usage/UsageStatsManagerInternal.java +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.app.usage; import android.app.usage.AppStandby.StandbyBuckets; import android.content.ComponentName; import android.content.res.Configuration; Loading Loading @@ -90,6 +91,19 @@ public abstract class UsageStatsManagerInternal { */ public abstract boolean isAppIdle(String packageName, int uidForAppId, int userId); /** * Returns the app standby bucket that the app is currently in. This accessor does * <em>not</em> obfuscate instant apps. * * @param packageName * @param userId * @param nowElapsed The current time, in the elapsedRealtime time base * @return the AppStandby bucket code the app currently resides in. If the app is * unknown in the given user, STANDBY_BUCKET_NEVER is returned. */ @StandbyBuckets public abstract int getAppStandbyBucket(String packageName, int userId, long nowElapsed); /** * Returns all of the uids for a given user where all packages associating with that uid * are in the app idle state -- there are no associated apps that are not idle. This means Loading
core/java/android/content/pm/PackageManagerInternal.java +8 −0 Original line number Diff line number Diff line Loading @@ -163,6 +163,14 @@ public abstract class PackageManagerInternal { public abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags, int filterCallingUid, int userId); /** * Do a straight uid lookup for the given package/application in the given user. * @see PackageManager#getPackageUidAsUser(String, int, int) * @return The app's uid, or < 0 if the package was not found in that user */ public abstract int getPackageUid(String packageName, @PackageInfoFlags int flags, int userId); /** * Retrieve all of the information we know about a particular package/application. * @param filterCallingUid The results will be filtered in the context of this UID instead Loading
services/core/java/com/android/server/job/JobSchedulerInternal.java +12 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,18 @@ import java.util.List; */ public interface JobSchedulerInternal { // Bookkeeping about app standby bucket scheduling /** * The current bucket heartbeat ordinal */ long currentHeartbeat(); /** * Heartbeat ordinal at which the given standby bucket's jobs next become runnable */ long nextHeartbeatForBucket(int bucket); /** * Returns a list of pending jobs scheduled by the system service. */ Loading
services/core/java/com/android/server/job/JobSchedulerService.java +239 −12 File changed.Preview size limit exceeded, changes collapsed. Show changes