Java 类com.google.android.gms.gcm.OneoffTask 实例源码
项目:chromium-for-android-56-debug-video
文件:BackgroundScheduler.java
/**
* For the given Triggering conditions, start a new GCM Network Manager request allowed
* to run after {@code delayStartSecs} seconds.
*/
private static void schedule(Context context, TriggerConditions triggerConditions,
long delayStartSecs, boolean overwrite) {
// Get the GCM Network Scheduler.
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(context);
Bundle taskExtras = new Bundle();
TaskExtrasPacker.packTimeInBundle(taskExtras);
TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, triggerConditions);
Task task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(delayStartSecs, ONE_WEEK_IN_SECONDS)
.setTag(OfflinePageUtils.TASK_TAG)
.setUpdateCurrent(overwrite)
.setRequiredNetwork(triggerConditions.requireUnmeteredNetwork()
? Task.NETWORK_STATE_UNMETERED
: Task.NETWORK_STATE_CONNECTED)
.setRequiresCharging(triggerConditions.requirePowerConnected())
.setExtras(taskExtras)
.build();
gcmNetworkManager.schedule(task);
}
项目:chromium-for-android-56-debug-video
文件:DownloadResumptionScheduler.java
/**
* Schedules a future task to start download resumption.
* @param allowMeteredConnection Whether download resumption can start if connection is metered.
*/
public void schedule(boolean allowMeteredConnection) {
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(mContext);
int networkType = allowMeteredConnection
? Task.NETWORK_STATE_CONNECTED : Task.NETWORK_STATE_UNMETERED;
OneoffTask task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(0, ONE_DAY_IN_SECONDS)
.setTag(TASK_TAG)
.setUpdateCurrent(true)
.setRequiredNetwork(networkType)
.setRequiresCharging(false)
.build();
try {
gcmNetworkManager.schedule(task);
} catch (IllegalArgumentException e) {
Log.e(TAG, "unable to schedule resumption task.", e);
}
}
项目:chromium-for-android-56-debug-video
文件:PrecacheController.java
/**
* Schedules a one-off task to finish precaching the resources that were
* still outstanding when the last task was interrupted. Interrupting such
* a one-off task will result in scheduling a new one.
* @param context The application context.
*/
private static void schedulePrecacheCompletionTask(Context context) {
Log.v(TAG, "scheduling a precache completion task");
OneoffTask task = new OneoffTask.Builder()
.setExecutionWindow(COMPLETION_TASK_MIN_DELAY_SECONDS,
COMPLETION_TASK_MAX_DELAY_SECONDS)
.setPersisted(true)
.setRequiredNetwork(OneoffTask.NETWORK_STATE_UNMETERED)
.setRequiresCharging(ChromeVersionInfo.isStableBuild())
.setService(ChromeBackgroundService.class)
.setTag(CONTINUATION_TASK_TAG)
.setUpdateCurrent(true)
.build();
if (sTaskScheduler.scheduleTask(context, task)) {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE);
} else {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE_FAIL);
}
}
项目:chromium-for-android-56-debug-video
文件:BackgroundSyncLauncher.java
private static boolean scheduleLaunchTask(
Context context, GcmNetworkManager scheduler, long minDelayMs) {
// Google Play Services may not be up to date, if the application was not installed through
// the Play Store. In this case, scheduling the task will fail silently.
final long minDelaySecs = minDelayMs / 1000;
OneoffTask oneoff = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setTag(TASK_TAG)
// We have to set a non-zero execution window here
.setExecutionWindow(minDelaySecs, minDelaySecs + 1)
.setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
.setPersisted(true)
.setUpdateCurrent(true)
.build();
try {
scheduler.schedule(oneoff);
} catch (IllegalArgumentException e) {
// Disable GCM for the remainder of this session.
setGCMEnabled(false);
// Return false so that the failure will be logged.
return false;
}
return true;
}
项目:Asynchronous-Android-Programming
文件:AccountSettingsActivity.java
@Override
public void onClick(View v) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(AccountSettingsActivity.this);
sharedPreferences.edit().putString("firstName", firstName.getText().toString()).apply();
sharedPreferences.edit().putString("lastName", lastName.getText().toString()).apply();
sharedPreferences.edit().putString("age",age.getText().toString()).apply();
GcmNetworkManager gcmNM = GcmNetworkManager.getInstance(AccountSettingsActivity.this);
Log.i(TAG, "Registering the BackupTask");
OneoffTask task = new OneoffTask.Builder()
.setService(MyBackupService.class)
.setTag(TASK_BACKUP)
.setExecutionWindow(0L, ONE_HOUR)
.setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
.setRequiresCharging(true)
.setUpdateCurrent(true)
.build();
gcmNM.schedule(task);
}
项目:android-gcmnetworkmanager
文件:MainActivity.java
public void startWifiTask() {
Log.d(TAG, "startWiFiTask");
// Disable WiFi so the task does not start immediately
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(false);
// [START start_one_off_task]
OneoffTask task = new OneoffTask.Builder()
.setService(MyTaskService.class)
.setTag(TASK_TAG_WIFI)
.setExecutionWindow(0L, 3600L)
.setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
.build();
mGcmNetworkManager.schedule(task);
// [END start_one_off_task]
}
项目:AndroidChromium
文件:BackgroundScheduler.java
/**
* For the given Triggering conditions, start a new GCM Network Manager request allowed
* to run after {@code delayStartSecs} seconds.
*/
private static void schedule(Context context, TriggerConditions triggerConditions,
long delayStartSecs, boolean overwrite) {
// Get the GCM Network Scheduler.
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(context);
Bundle taskExtras = new Bundle();
TaskExtrasPacker.packTimeInBundle(taskExtras);
TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, triggerConditions);
Task task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(delayStartSecs, ONE_WEEK_IN_SECONDS)
.setTag(OfflinePageUtils.TASK_TAG)
.setUpdateCurrent(overwrite)
.setRequiredNetwork(triggerConditions.requireUnmeteredNetwork()
? Task.NETWORK_STATE_UNMETERED
: Task.NETWORK_STATE_CONNECTED)
.setRequiresCharging(triggerConditions.requirePowerConnected())
.setExtras(taskExtras)
.build();
gcmNetworkManager.schedule(task);
}
项目:AndroidChromium
文件:DownloadResumptionScheduler.java
/**
* Schedules a future task to start download resumption.
* @param allowMeteredConnection Whether download resumption can start if connection is metered.
*/
public void schedule(boolean allowMeteredConnection) {
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(mContext);
int networkType = allowMeteredConnection
? Task.NETWORK_STATE_CONNECTED : Task.NETWORK_STATE_UNMETERED;
OneoffTask task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(0, ONE_DAY_IN_SECONDS)
.setTag(TASK_TAG)
.setUpdateCurrent(true)
.setRequiredNetwork(networkType)
.setRequiresCharging(false)
.build();
try {
gcmNetworkManager.schedule(task);
} catch (IllegalArgumentException e) {
Log.e(TAG, "unable to schedule resumption task.", e);
}
}
项目:AndroidChromium
文件:PrecacheController.java
/**
* Schedules a one-off task to finish precaching the resources that were
* still outstanding when the last task was interrupted. Interrupting such
* a one-off task will result in scheduling a new one.
* @param context The application context.
*/
private static void schedulePrecacheCompletionTask(Context context) {
Log.v(TAG, "scheduling a precache completion task");
OneoffTask task = new OneoffTask.Builder()
.setExecutionWindow(COMPLETION_TASK_MIN_DELAY_SECONDS,
COMPLETION_TASK_MAX_DELAY_SECONDS)
.setPersisted(true)
.setRequiredNetwork(OneoffTask.NETWORK_STATE_UNMETERED)
.setRequiresCharging(ChromeVersionInfo.isStableBuild())
.setService(ChromeBackgroundService.class)
.setTag(CONTINUATION_TASK_TAG)
.setUpdateCurrent(true)
.build();
if (sTaskScheduler.scheduleTask(context, task)) {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE);
} else {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE_FAIL);
}
}
项目:AndroidChromium
文件:BackgroundSyncLauncher.java
private static boolean scheduleLaunchTask(
Context context, GcmNetworkManager scheduler, long minDelayMs) {
// Google Play Services may not be up to date, if the application was not installed through
// the Play Store. In this case, scheduling the task will fail silently.
final long minDelaySecs = minDelayMs / 1000;
OneoffTask oneoff = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setTag(TASK_TAG)
// We have to set a non-zero execution window here
.setExecutionWindow(minDelaySecs, minDelaySecs + 1)
.setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
.setPersisted(true)
.setUpdateCurrent(true)
.build();
try {
scheduler.schedule(oneoff);
} catch (IllegalArgumentException e) {
// Disable GCM for the remainder of this session.
setGCMEnabled(false);
// Return false so that the failure will be logged.
return false;
}
return true;
}
项目:assistance-platform-client-sdk-android
文件:WifiStateReceiver.java
/**
* Schedule all sensor LOGS upload one time task
*
* @param context
*/
private void scheduleSensorLogsUploadTask(Context context) {
Log.d(TAG, "Scheduling logs upload one time task...");
OneoffTask oneTimeTask = new Builder()
.setService(LogsUploadService.class)
.setExecutionWindow(UPLOAD_ALL_TASKS_START_SECS,
UPLOAD_ALL_TASKS_END_SECS)
.setTag("onetimetag | 2")
.setPersisted(true)
.setUpdateCurrent(true)
.setRequiredNetwork(Task.NETWORK_STATE_ANY)
.setRequiresCharging(false)
.build();
GcmNetworkManager.getInstance(context).schedule(oneTimeTask);
Log.d(TAG, "Logs upload task was scheduled!");
}
项目:assistance-platform-client-sdk-android
文件:SensorUploadService.java
/**
* Schedules an periodic upload task
*/
public static void scheduleOneTimeTask(Context context, long startSecs, long endSecs, String tag) {
Log.d(TAG, "Scheduling one time task...");
Bundle bundle = new Bundle();
bundle.putInt(UPLOAD_ALL_FLAG_NAME, UPLOAD_ALL_FLAG_VALUE);
OneoffTask oneTimeTask = new Builder()
.setService(SensorUploadService.class)
.setExecutionWindow(startSecs, endSecs)
.setTag(tag)
.setPersisted(true)
.setUpdateCurrent(true)
.setRequiredNetwork(Task.NETWORK_STATE_ANY)
.setRequiresCharging(false)
.setExtras(bundle)
.build();
GcmNetworkManager.getInstance(context).schedule(oneTimeTask);
Log.d(TAG, "One time task was scheduled!");
}
项目:gcm
文件:NetworkSchedulerFragment.java
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);
}
项目:orchextra-android-sdk
文件:ActionsSchedulerGcmImpl.java
@Override public void scheduleAction(ScheduledAction action) {
AndroidBasicAction androidBasicAction = androidBasicActionMapper.modelToExternalClass(
action.getBasicAction());
Bundle bundle = new Bundle();
bundle.putString(BUNDLE_TASK_PARAM_NAME, gson.toJson(androidBasicAction));
OneoffTask task = new OneoffTask.Builder()
.setService(OrchextraGcmTaskService.class)
.setTag(action.getId())
.setExecutionWindow(action.getScheduleTime()/ONE_SECOND, (action.getScheduleTime()/ONE_SECOND)+DEFAULT_DELAY_MAX)
.setPersisted(true)
.setRequiresCharging(false)
.setRequiredNetwork(Task.NETWORK_STATE_ANY)
.setExtras(bundle)
.build();
logShowTime(action);
orchextraLogger.log("Scheduled action "+ action.getId());
gcmNetworkManager.schedule(task);
}
项目:365browser
文件:DownloadResumptionScheduler.java
/**
* Schedules a future task to start download resumption.
* @param allowMeteredConnection Whether download resumption can start if connection is metered.
*/
public void schedule(boolean allowMeteredConnection) {
GcmNetworkManager gcmNetworkManager = GcmNetworkManager.getInstance(mContext);
int networkType = allowMeteredConnection
? Task.NETWORK_STATE_CONNECTED : Task.NETWORK_STATE_UNMETERED;
OneoffTask task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(0, ONE_DAY_IN_SECONDS)
.setTag(TASK_TAG)
.setUpdateCurrent(true)
.setRequiredNetwork(networkType)
.setRequiresCharging(false)
.build();
try {
gcmNetworkManager.schedule(task);
} catch (IllegalArgumentException e) {
Log.e(TAG, "unable to schedule resumption task.", e);
}
}
项目:365browser
文件:PrecacheController.java
/**
* Schedules a one-off task to finish precaching the resources that were
* still outstanding when the last task was interrupted. Interrupting such
* a one-off task will result in scheduling a new one.
* @param context The application context.
*/
private static void schedulePrecacheCompletionTask(Context context) {
Log.v(TAG, "scheduling a precache completion task");
OneoffTask task = new OneoffTask.Builder()
.setExecutionWindow(COMPLETION_TASK_MIN_DELAY_SECONDS,
COMPLETION_TASK_MAX_DELAY_SECONDS)
.setPersisted(true)
.setRequiredNetwork(OneoffTask.NETWORK_STATE_UNMETERED)
.setRequiresCharging(ChromeVersionInfo.isStableBuild())
.setService(ChromeBackgroundService.class)
.setTag(CONTINUATION_TASK_TAG)
.setUpdateCurrent(true)
.build();
if (sTaskScheduler.scheduleTask(context, task)) {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE);
} else {
PrecacheUMA.record(PrecacheUMA.Event.ONEOFF_TASK_SCHEDULE_FAIL);
}
}
项目:365browser
文件:BackgroundSyncLauncher.java
private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) {
// Google Play Services may not be up to date, if the application was not installed through
// the Play Store. In this case, scheduling the task will fail silently.
final long minDelaySecs = minDelayMs / 1000;
OneoffTask oneoff = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setTag(TASK_TAG)
// We have to set a non-zero execution window here
.setExecutionWindow(minDelaySecs, minDelaySecs + 1)
.setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
.setPersisted(true)
.setUpdateCurrent(true)
.build();
try {
scheduler.schedule(oneoff);
} catch (IllegalArgumentException e) {
// Disable GCM for the remainder of this session.
setGCMEnabled(false);
// Return false so that the failure will be logged.
return false;
}
return true;
}
项目:q-municate-android
文件:NetworkGCMTaskService.java
public static void scheduleOneOff(Context context, String what) {
Bundle extras = new Bundle();
extras.putString(EXTRA_KEY, what);
OneoffTask task = new OneoffTask.Builder()
.setService(NetworkGCMTaskService.class)
.setTag(TASK_NETWORK_TAG)
.setExtras(extras)
// Execution window: The time period in which the task will execute.
// First param is the lower bound and the second is the upper bound (both are in seconds).
.setExecutionWindow(0L, 30L)
.setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
.setUpdateCurrent(true)
.build();
GcmNetworkManager.getInstance(context).schedule(task);
}
项目:iSPY
文件:TrackerService.java
private void shutdownAndScheduleStartup(int when) {
Log.i(TAG, "overnight shutdown, seconds to startup: " + when);
com.google.android.gms.gcm.Task task = new OneoffTask.Builder()
.setService(TrackerTaskService.class)
.setExecutionWindow(when, when + 60)
.setUpdateCurrent(true)
.setTag(TrackerTaskService.TAG)
.setRequiredNetwork(com.google.android.gms.gcm.Task.NETWORK_STATE_ANY)
.setRequiresCharging(false)
.build();
GcmNetworkManager.getInstance(this).schedule(task);
stopSelf();
}
项目:android-gcmnetworkmanager
文件:MainActivity.java
public void startChargingTask() {
Log.d(TAG, "startChargingTask");
OneoffTask task = new OneoffTask.Builder()
.setService(MyTaskService.class)
.setTag(TASK_TAG_CHARGING)
.setExecutionWindow(0L, 3600L)
.setRequiresCharging(true)
.build();
mGcmNetworkManager.schedule(task);
}
项目:Android-High-Performance-Programming
文件:GcmNetworkManagerActivity.java
private Task createOnoffTask() {
return new OneoffTask.Builder()
.setService(MyGcmTaskService.class)
.setTag(MyGcmTaskService.MY_TASK)
.setExecutionWindow(0, 1000L)
.build();
}
项目:365browser
文件:BackgroundGcmScheduler.java
@Override
protected void scheduleImpl(TriggerConditions triggerConditions, long delayStartSeconds,
long executionDeadlineSeconds, boolean overwrite) {
GcmNetworkManager gcmNetworkManager = getGcmNetworkManager();
if (gcmNetworkManager == null) return;
Bundle taskExtras = new Bundle();
TaskExtrasPacker.packTimeInBundle(taskExtras);
TaskExtrasPacker.packHoldWakelock(taskExtras);
TaskExtrasPacker.packTriggerConditionsInBundle(taskExtras, triggerConditions);
Task task = new OneoffTask.Builder()
.setService(ChromeBackgroundService.class)
.setExecutionWindow(delayStartSeconds, executionDeadlineSeconds)
.setTag(OfflinePageUtils.TASK_TAG)
.setUpdateCurrent(overwrite)
.setRequiredNetwork(triggerConditions.requireUnmeteredNetwork()
? Task.NETWORK_STATE_UNMETERED
: Task.NETWORK_STATE_CONNECTED)
.setRequiresCharging(triggerConditions.requirePowerConnected())
.setPersisted(true)
.setExtras(taskExtras)
.build();
// Schedule a task using GCM network manager.
gcmNetworkManager.schedule(task);
}
项目:365browser
文件:BackgroundTaskSchedulerGcmNetworkManager.java
private static Task.Builder getOneOffTaskBuilder(TaskInfo.OneOffInfo oneOffInfo) {
OneoffTask.Builder builder = new OneoffTask.Builder();
long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint()
? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs())
: 0;
builder.setExecutionWindow(windowStartSeconds,
TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowEndTimeMs()));
return builder;
}
项目:365browser
文件:AndroidGcmController.java
/**
* Clears the current registration token and schedules a {@link OneoffTask} to start the
* GcmRegistrationTaskService if Google Play Services is available.
*
* <p>Declared public to be used by the client to update the token if they define an
* implementation of InstanceIDListenerService.
*/
public void fetchToken() {
// Clear the current token. If the call to InstanceID#getToken fails a new token will be fetched
// on the next call to {@code initializeGcm}.
AndroidChannelPreferences.setRegistrationToken(context, "");
// The GMS client library requires the corresponding version of Google Play Services APK to be
// installed on the device.
if (CommonUtils.getPackageVersion(context, GOOGLE_PLAY_SERVICES_PACKAGE)
< QUESO_PLAY_SERVICES_VERSION) {
logger.warning("Google Play Services unavailable. Initialization failed.");
return;
}
OneoffTask registrationTask =
new OneoffTask.Builder()
.setExecutionWindow(0, 1)
.setTag(AndroidChannelConstants.GCM_REGISTRATION_TASK_SERVICE_TAG)
.setService(GcmRegistrationTaskService.class)
.build();
try {
gcmNetworkManager.schedule(registrationTask);
} catch (IllegalArgumentException exception) {
// Scheduling the service can throw an exception due to a framework error on Android when
// the the look up for the GCMTaskService being scheduled to be run fails.
// See crbug/548314.
logger.warning("Failed to schedule GCM registration task. Exception: %s", exception);
}
}
项目:android-network-manager
文件:MainActivity.java
@Override
protected void onPostExecute(TaskItem taskItem) {
mTaskAdapter.addTaskItem(taskItem);
mRecyclerView.scrollToPosition(0);
if (taskItem.getType().equals(TaskItem.ONEOFF_TASK)) {
Bundle bundle = new Bundle();
bundle.putString(CodelabUtil.TASK_ID, taskItem.getId());
// Schedule oneoff task.
OneoffTask oneoffTask = new OneoffTask.Builder()
.setService(BestTimeService.class)
.setTag(taskItem.getId())
.setRequiredNetwork(OneoffTask.NETWORK_STATE_CONNECTED)
// Use an execution window of 30 seconds or more. Less than 30 seconds would not allow
// GcmNetworkManager enough time to optimize the next best time to execute your task.
.setExecutionWindow(0, 30)
.setExtras(bundle)
.build();
mGcmNetworkManager.schedule(oneoffTask);
} else {
// Immediately make network call.
Intent nowIntent = new Intent(mContext, NowIntentService.class);
nowIntent.putExtra(CodelabUtil.TASK_ID, taskItem.getId());
mContext.startService(nowIntent);
}
}
项目:MarketAndroid
文件:AccountUtils.java
public void scheduleSmartlistSync() {
GcmNetworkManager gcm = GcmNetworkManager.getInstance(m_context);
OneoffTask syncTask = new OneoffTask.Builder()
.setService(ManualSyncService.class)
.setExecutionWindow(5, 30)
.setTag("sync-smartlist")
.setUpdateCurrent(true)
.setRequiredNetwork(Task.NETWORK_STATE_ANY)
.build();
gcm.schedule(syncTask);
}
项目:PhotoPhase
文件:GmsCastTaskManager.java
public void schedule(long time) {
OneoffTask task = new OneoffTask.Builder()
.setService(CastGcmTaskService.class)
.setTag(CAST_SERVICE_TAG)
.setExecutionWindow(time - 1, time)
.setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
.build();
mGcmNetworkManager.schedule(task);
}