private void addOneOff(long winStartSecs, long winEndSecs, int connectivity, boolean charging) { if (winStartSecs > winEndSecs) { Toast.makeText(getActivity(), getString(R.string.scheduler_error_window), Toast.LENGTH_SHORT) .show(); return; } String tag = Long.toString(SystemClock.currentThreadTimeMillis()); final long elapsedNowSeconds = SystemClock.elapsedRealtime() / 1000; final TaskTracker taskTracker = TaskTracker.createOneoff( tag, elapsedNowSeconds + winStartSecs, elapsedNowSeconds + winEndSecs); OneoffTask oneOff = new OneoffTask.Builder() .setService(TaskSchedulerService.class) .setTag(tag) .setExecutionWindow(winStartSecs, winEndSecs) .setRequiredNetwork(connectivity) // Persistence not yet support for Oneoffs. .setRequiresCharging(charging) .build(); mScheduler.schedule(oneOff); mTasks.updateTask(taskTracker); }