Search in sources :

Example 46 with JobScheduler

use of android.app.job.JobScheduler in project android-priority-jobqueue by yigit.

the class FrameworkScheduler method request.

@SuppressLint("SwitchIntDef")
@Override
public void request(SchedulerConstraint constraint) {
    JobScheduler jobScheduler = getJobScheduler();
    final int id = createId();
    JobInfo.Builder builder = new JobInfo.Builder(id, getComponentName()).setExtras(toPersistentBundle(constraint)).setPersisted(true);
    switch(constraint.getNetworkStatus()) {
        case NetworkUtil.UNMETERED:
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);
            break;
        case NetworkUtil.METERED:
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
            break;
        default:
            builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE);
            builder.setRequiresDeviceIdle(true);
            break;
    }
    if (constraint.getDelayInMs() > 0) {
        builder.setMinimumLatency(constraint.getDelayInMs());
    }
    if (constraint.getOverrideDeadlineInMs() != null) {
        builder.setOverrideDeadline(constraint.getOverrideDeadlineInMs());
    }
    int scheduled = jobScheduler.schedule(builder.build());
    JqLog.d("[FW Scheduler] scheduled a framework job. Success? %s id: %d" + " created id: %d", scheduled > 0, scheduled, id);
}
Also used : JobScheduler(android.app.job.JobScheduler) JobInfo(android.app.job.JobInfo) SuppressLint(android.annotation.SuppressLint) SuppressLint(android.annotation.SuppressLint)

Example 47 with JobScheduler

use of android.app.job.JobScheduler in project android_frameworks_base by AOSPA.

the class KeyValueBackupJob method cancel.

public static void cancel(Context ctx) {
    synchronized (KeyValueBackupJob.class) {
        JobScheduler js = (JobScheduler) ctx.getSystemService(Context.JOB_SCHEDULER_SERVICE);
        js.cancel(JOB_ID);
        sNextScheduled = 0;
        sScheduled = false;
    }
}
Also used : JobScheduler(android.app.job.JobScheduler)

Example 48 with JobScheduler

use of android.app.job.JobScheduler in project android_frameworks_base by AOSPA.

the class KeyValueBackupJob method schedule.

public static void schedule(Context ctx, long delay) {
    synchronized (KeyValueBackupJob.class) {
        if (!sScheduled) {
            if (delay <= 0) {
                delay = BATCH_INTERVAL + new Random().nextInt(FUZZ_MILLIS);
            }
            if (BackupManagerService.DEBUG_SCHEDULING) {
                Slog.v(TAG, "Scheduling k/v pass in " + (delay / 1000 / 60) + " minutes");
            }
            JobScheduler js = (JobScheduler) ctx.getSystemService(Context.JOB_SCHEDULER_SERVICE);
            JobInfo.Builder builder = new JobInfo.Builder(JOB_ID, sKeyValueJobService).setMinimumLatency(delay).setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY).setRequiresCharging(true).setOverrideDeadline(MAX_DEFERRAL);
            js.schedule(builder.build());
            sNextScheduled = System.currentTimeMillis() + delay;
            sScheduled = true;
        }
    }
}
Also used : JobScheduler(android.app.job.JobScheduler) Random(java.util.Random) JobInfo(android.app.job.JobInfo)

Example 49 with JobScheduler

use of android.app.job.JobScheduler in project android_frameworks_base by AOSPA.

the class MountServiceIdler method scheduleIdlePass.

/**
     * Schedule the idle job that will ping the mount service
     */
public static void scheduleIdlePass(Context context) {
    JobScheduler tm = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    Calendar calendar = tomorrowMidnight();
    final long timeToMidnight = calendar.getTimeInMillis() - System.currentTimeMillis();
    JobInfo.Builder builder = new JobInfo.Builder(MOUNT_JOB_ID, sIdleService);
    builder.setRequiresDeviceIdle(true);
    builder.setRequiresCharging(true);
    builder.setMinimumLatency(timeToMidnight);
    tm.schedule(builder.build());
}
Also used : JobScheduler(android.app.job.JobScheduler) JobInfo(android.app.job.JobInfo) Calendar(java.util.Calendar)

Example 50 with JobScheduler

use of android.app.job.JobScheduler in project android_frameworks_base by AOSPA.

the class NekoService method registerJobIfNeeded.

public static void registerJobIfNeeded(Context context, long intervalMinutes) {
    JobScheduler jss = context.getSystemService(JobScheduler.class);
    JobInfo info = jss.getPendingJob(JOB_ID);
    if (info == null) {
        registerJob(context, intervalMinutes);
    }
}
Also used : JobScheduler(android.app.job.JobScheduler) JobInfo(android.app.job.JobInfo)

Aggregations

JobScheduler (android.app.job.JobScheduler)63 JobInfo (android.app.job.JobInfo)42 ComponentName (android.content.ComponentName)13 NotificationManager (android.app.NotificationManager)5 Calendar (java.util.Calendar)5 Random (java.util.Random)5 AlarmManager (android.app.AlarmManager)2 SharedPreferences (android.content.SharedPreferences)2 Account (android.accounts.Account)1 AccountManager (android.accounts.AccountManager)1 SuppressLint (android.annotation.SuppressLint)1 ConnectivityManager (android.net.ConnectivityManager)1 Bundle (android.os.Bundle)1 PersistableBundle (android.os.PersistableBundle)1 UiThread (android.support.annotation.UiThread)1 Test (org.junit.Test)1