Search in sources :

Example 51 with JobScheduler

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

the class NekoService method registerJob.

public static void registerJob(Context context, long intervalMinutes) {
    JobScheduler jss = context.getSystemService(JobScheduler.class);
    jss.cancel(JOB_ID);
    long interval = intervalMinutes * MINUTES;
    long jitter = (long) (INTERVAL_JITTER_FRAC * interval);
    interval += (long) (Math.random() * (2 * jitter)) - jitter;
    final JobInfo jobInfo = new JobInfo.Builder(JOB_ID, new ComponentName(context, NekoService.class)).setPeriodic(interval, INTERVAL_FLEX).build();
    Log.v(TAG, "A cat will visit in " + interval + "ms: " + String.valueOf(jobInfo));
    jss.schedule(jobInfo);
    if (NekoLand.DEBUG_NOTIFICATIONS) {
        NotificationManager noman = context.getSystemService(NotificationManager.class);
        noman.notify(500, new Notification.Builder(context).setSmallIcon(R.drawable.stat_icon).setContentTitle(String.format("Job scheduled in %d min", (interval / MINUTES))).setContentText(String.valueOf(jobInfo)).setPriority(Notification.PRIORITY_MIN).setCategory(Notification.CATEGORY_SERVICE).setShowWhen(true).build());
    }
}
Also used : JobScheduler(android.app.job.JobScheduler) NotificationManager(android.app.NotificationManager) JobInfo(android.app.job.JobInfo) ComponentName(android.content.ComponentName)

Example 52 with JobScheduler

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

the class BackgroundDexOptService method schedule.

public static void schedule(Context context) {
    JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    // Schedule a one-off job which scans installed packages and updates
    // out-of-date oat files.
    js.schedule(new JobInfo.Builder(JOB_POST_BOOT_UPDATE, sDexoptServiceName).setMinimumLatency(TimeUnit.MINUTES.toMillis(1)).setOverrideDeadline(TimeUnit.MINUTES.toMillis(1)).build());
    // Schedule a daily job which scans installed packages and compiles
    // those with fresh profiling data.
    js.schedule(new JobInfo.Builder(JOB_IDLE_OPTIMIZE, sDexoptServiceName).setRequiresDeviceIdle(true).setRequiresCharging(true).setPeriodic(TimeUnit.DAYS.toMillis(1)).build());
    if (DEBUG_DEXOPT) {
        Log.i(TAG, "Jobs scheduled");
    }
}
Also used : JobScheduler(android.app.job.JobScheduler) JobInfo(android.app.job.JobInfo)

Example 53 with JobScheduler

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

the class DiskStatsLoggingService method schedule.

/**
     * Schedules a DiskStats collection task. This task only runs on device idle while charging
     * once every 24 hours.
     * @param context Context to use to get a job scheduler.
     */
public static void schedule(Context context) {
    JobScheduler js = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
    js.schedule(new JobInfo.Builder(JOB_DISKSTATS_LOGGING, sDiskStatsLoggingService).setRequiresDeviceIdle(true).setRequiresCharging(true).setPeriodic(TimeUnit.DAYS.toMillis(1)).build());
}
Also used : JobScheduler(android.app.job.JobScheduler) JobInfo(android.app.job.JobInfo)

Example 54 with JobScheduler

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

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 55 with JobScheduler

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

the class TestJobService method scheduleJob.

/** Send job to the JobScheduler. */
public void scheduleJob(JobInfo job) {
    Log.d(TAG, "Scheduling job " + job);
    JobScheduler tm = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
    tm.schedule(job);
}
Also used : JobScheduler(android.app.job.JobScheduler)

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