Java 类com.google.android.gms.gcm.PeriodicTask 实例源码

项目:openlocate-android    文件:LocationServiceHelper.java   
private void scheduleDispatchLocationService() {

        if(endpoints == null) {
            return;
        }

        Bundle bundle = new Bundle();
        try {
            bundle.putString(Constants.ENDPOINTS_KEY, OpenLocate.Endpoint.toJson(endpoints));
        } catch (JSONException e) {
            e.printStackTrace();
        }

        PeriodicTask task = new PeriodicTask.Builder()
                .setExtras(bundle)
                .setService(DispatchLocationService.class)
                .setPeriod(transmissionIntervalInSecs)
                .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
                .setRequiresCharging(false)
                .setPersisted(true)
                .setUpdateCurrent(true)
                .setTag(LOCATION_DISPATCH_TAG)
                .build();

        networkManager.schedule(task);
    }
项目:chromium-for-android-56-debug-video    文件:SnippetsLauncher.java   
private static PeriodicTask buildFetchTask(
        String tag, long periodSeconds, int requiredNetwork) {
    // Add a bit of "flex" around the target period. This achieves the following:
    // - It makes sure the task doesn't run (significantly) before its initial period has
    //   elapsed. In practice, the scheduler seems to behave like that anyway, but it doesn't
    //   guarantee that, so we shouldn't rely on it.
    // - It gives the scheduler a bit of room to optimize for battery life.
    long effectivePeriodSeconds = (long) (periodSeconds * (1.0 + FLEX_FACTOR));
    long flexSeconds = (long) (periodSeconds * (2.0 * FLEX_FACTOR));
    return new PeriodicTask.Builder()
            .setService(ChromeBackgroundService.class)
            .setTag(tag)
            .setPeriod(effectivePeriodSeconds)
            .setFlex(flexSeconds)
            .setRequiredNetwork(requiredNetwork)
            .setPersisted(true)
            .setUpdateCurrent(true)
            .build();
}
项目:xDrip    文件:RegistrationIntentService.java   
private void sendRegistrationToServer(String token) {
    try {
        Log.d(TAG, "Scheduling tasks");
        PeriodicTask task = new PeriodicTask.Builder()
                .setService(TaskService.class)
                .setTag(GcmActivity.TASK_TAG_UNMETERED)
                .setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
                .setPeriod(7200L)
                .build();

        GcmNetworkManager.getInstance(this).cancelAllTasks(TaskService.class);
        GcmNetworkManager.getInstance(this).schedule(task);
        PlusSyncService.startSyncService(getApplicationContext(), "RegistrationToServer");
        GcmActivity.queueCheckOld(getApplicationContext());
    } catch (Exception e) {
        Log.e(TAG, "Exception in sendRegistration: " + e.toString());
    }
}
项目:xDrip-plus    文件:RegistrationIntentService.java   
private void sendRegistrationToServer(String token) {
    try {
        Log.d(TAG, "Scheduling tasks");
        PeriodicTask task = new PeriodicTask.Builder()
                .setService(TaskService.class)
                .setTag(GcmActivity.TASK_TAG_UNMETERED)
                .setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
                .setPeriod(7200L)
                .build();

        GcmNetworkManager.getInstance(this).cancelAllTasks(TaskService.class);
        GcmNetworkManager.getInstance(this).schedule(task);
        PlusSyncService.startSyncService(getApplicationContext(), "RegistrationToServer");
        GcmActivity.queueCheckOld(getApplicationContext());
    } catch (Exception e) {
        Log.e(TAG, "Exception in sendRegistration: " + e.toString());
    }
}
项目:AndroidChromium    文件:SnippetsLauncher.java   
private static PeriodicTask buildFetchTask(
        String tag, long periodSeconds, int requiredNetwork) {
    // Add a bit of "flex" around the target period. This achieves the following:
    // - It makes sure the task doesn't run (significantly) before its initial period has
    //   elapsed. In practice, the scheduler seems to behave like that anyway, but it doesn't
    //   guarantee that, so we shouldn't rely on it.
    // - It gives the scheduler a bit of room to optimize for battery life.
    long effectivePeriodSeconds = (long) (periodSeconds * (1.0 + FLEX_FACTOR));
    long flexSeconds = (long) (periodSeconds * (2.0 * FLEX_FACTOR));
    return new PeriodicTask.Builder()
            .setService(ChromeBackgroundService.class)
            .setTag(tag)
            .setPeriod(effectivePeriodSeconds)
            .setFlex(flexSeconds)
            .setRequiredNetwork(requiredNetwork)
            .setPersisted(true)
            .setUpdateCurrent(true)
            .build();
}
项目:gcm    文件:NetworkSchedulerFragment.java   
private void addPeriodic(long periodSecs, long flexSecs, int connectivity,
                         boolean charging, boolean persistence) {
    if (flexSecs > periodSecs) {
        Toast.makeText(getActivity(),
                getString(R.string.scheduler_error_flex),
                Toast.LENGTH_SHORT).show();
        return;
    }
    String tag = Long.toString(SystemClock.currentThreadTimeMillis());
    final TaskTracker taskTracker = TaskTracker.createPeriodic(tag, periodSecs, flexSecs);
    PeriodicTask periodic = new PeriodicTask.Builder()
            .setService(TaskSchedulerService.class)
            .setPeriod(periodSecs)
            .setFlex(flexSecs)
            .setTag(tag)
            .setRequiredNetwork(connectivity)
            .setRequiresCharging(charging)
            .setPersisted(persistence)
            .build();
    mScheduler.schedule(periodic);
    mTasks.updateTask(taskTracker);
}
项目:365browser    文件:SnippetsLauncher.java   
private static PeriodicTask buildFetchTask(
        String tag, long periodSeconds, int requiredNetwork) {
    // Add a bit of "flex" around the target period. This achieves the following:
    // - It makes sure the task doesn't run (significantly) before its initial period has
    //   elapsed. In practice, the scheduler seems to behave like that anyway, but it doesn't
    //   guarantee that, so we shouldn't rely on it.
    // - It gives the scheduler a bit of room to optimize for battery life.
    long effectivePeriodSeconds = (long) (periodSeconds * (1.0 + FLEX_FACTOR));
    long flexSeconds = (long) (periodSeconds * (2.0 * FLEX_FACTOR));
    return new PeriodicTask.Builder()
            .setService(ChromeBackgroundService.class)
            .setTag(tag)
            .setPeriod(effectivePeriodSeconds)
            .setFlex(flexSeconds)
            .setRequiredNetwork(requiredNetwork)
            .setPersisted(true)
            .setUpdateCurrent(true)
            .build();
}
项目:iBurn-Android    文件:DataUpdateService.java   
public static void scheduleAutoUpdate(Context context) {
    long periodSecs = 60 * 60 * 24;     // Auto-update should be performed no more than once per 24 hours

    PeriodicTask dailyUpdate = new PeriodicTask.Builder()
            .setService(DataUpdateService.class)
            .setPeriod(periodSecs)
            .setTag(AUTO_UPDATE_TASK_NAME)
            .setPersisted(true)
            .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
            .setRequiresCharging(false)
            .setUpdateCurrent(true)
            .build();

    GcmNetworkManager.getInstance(context).schedule(dailyUpdate);
    Timber.d("Scheduled auto-update");
}
项目:chromium-for-android-56-debug-video    文件:PrecacheController.java   
/**
 * Schedules a periodic task to precache resources.
 * @param context The application context.
 * @return false if the task cannot be scheduled.
 */
private static boolean schedulePeriodicPrecacheTask(Context context) {
    PeriodicTask task = new PeriodicTask.Builder()
                                .setPeriod(WAIT_UNTIL_NEXT_PRECACHE_SECONDS)
                                .setPersisted(true)
                                .setRequiredNetwork(PeriodicTask.NETWORK_STATE_UNMETERED)
                                .setRequiresCharging(ChromeVersionInfo.isStableBuild())
                                .setService(ChromeBackgroundService.class)
                                .setTag(PERIODIC_TASK_TAG)
                                .build();
    return sTaskScheduler.scheduleTask(context, task);
}
项目:robird-reborn    文件:AccountUpdateService.java   
public static PeriodicTask create() {
    return new PeriodicTask.Builder()
            .setService(AccountUpdateService.class)
            .setTag("account_update")
            .setUpdateCurrent(true)
            .setPeriod(24 * 3600)
            .setPersisted(true)
            .build();
}
项目:robird-reborn    文件:TimelineUpdateService.java   
public static PeriodicTask create(long periodInSeconds) {
    return new PeriodicTask.Builder()
            .setService(TimelineUpdateService.class)
            .setPeriod(periodInSeconds)
            .setTag("timeline_update")
            .setUpdateCurrent(true)
            .setPersisted(true)
            .build();
}
项目:Asynchronous-Android-Programming    文件:AccountSettingsActivity.java   
@Override
public void onClick(View v) {
    GcmNetworkManager gcmNM = GcmNetworkManager.getInstance(AccountSettingsActivity.this);
    Log.i(TAG, "Registering Periodic BackupTask");
    PeriodicTask task = new PeriodicTask.Builder()
            .setService(MyBackupService.class)
            .setTag(TASK_PERIODIC_BACKUP)
            .setFlex(TimeUnit.HOURS.toSeconds(1))
            .setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
            .setRequiresCharging(true)
            .setPeriod(TimeUnit.HOURS.toSeconds(6))
            .setPersisted(true)
            .build();
    gcmNM.schedule(task);
}
项目:android-gcmnetworkmanager    文件:MainActivity.java   
public void startPeriodicTask() {
    Log.d(TAG, "startPeriodicTask");

    // [START start_periodic_task]
    PeriodicTask task = new PeriodicTask.Builder()
            .setService(MyTaskService.class)
            .setTag(TASK_TAG_PERIODIC)
            .setPeriod(30L)
            .build();

    mGcmNetworkManager.schedule(task);
    // [END start_periodic_task]
}
项目:Android-High-Performance-Programming    文件:GcmNetworkManagerActivity.java   
private Task createPeriodicTask() {
    return new PeriodicTask.Builder()
            .setService(MyGcmTaskService.class)
            .setTag(MyGcmTaskService.MY_TASK)
            .setPeriod(5L)
            .build();
}
项目:WindowJobScheduler    文件:WindowTask.java   
public void schedule(@NonNull GcmNetworkManager networkManager) throws IllegalStateException{
    if (tag == null) {
        throw new IllegalStateException("Tag cannot be null for WindowTask, it is used for rescheduling to the right time");
    }
    else if (windowHours == 0) {
        throw new IllegalStateException("Window hours not defined");
    }

    if (extras == null){
        extras = new Bundle();
    }
    extras.putBoolean(KEY_REQUIRES_CHARGING, requiresCharging);
    extras.putInt(KEY_REQUIRED_NETWORK, requiredNetworkState);
    extras.putInt(KEY_WINDOW_HOURS, windowHours);
    extras.putInt(KEY_START_MINUTE, startMinute);
    extras.putInt(KEY_START_HOUR, startHour);
    extras.putBoolean(KEY_PERSISTED, persisted);
    extras.putBoolean(KEY_UPDATE_CURRENT, updateCurrent);
    extras.putBoolean(KEY_STRICT, strict);

    networkManager.cancelTask(tag, service);
    PeriodicTask.Builder task = new PeriodicTask.Builder()
            .setService(service)
            .setPersisted(persisted)
            .setRequiresCharging(requiresCharging)
            .setRequiredNetwork(requiredNetworkState)
            .setTag(tag)
            .setUpdateCurrent(updateCurrent)
            .setExtras(extras)
            .setPeriod(getPeriod())
            .setFlex(windowHours * 60);
    networkManager.schedule(task.build());
}
项目:AndroidChromium    文件:PrecacheController.java   
/**
 * Schedules a periodic task to precache resources.
 * @param context The application context.
 * @return false if the task cannot be scheduled.
 */
private static boolean schedulePeriodicPrecacheTask(Context context) {
    PeriodicTask task = new PeriodicTask.Builder()
                                .setPeriod(WAIT_UNTIL_NEXT_PRECACHE_SECONDS)
                                .setPersisted(true)
                                .setRequiredNetwork(PeriodicTask.NETWORK_STATE_UNMETERED)
                                .setRequiresCharging(ChromeVersionInfo.isStableBuild())
                                .setService(ChromeBackgroundService.class)
                                .setTag(PERIODIC_TASK_TAG)
                                .build();
    return sTaskScheduler.scheduleTask(context, task);
}
项目:365browser    文件:PrecacheController.java   
/**
 * Schedules a periodic task to precache resources.
 * @param context The application context.
 * @return false if the task cannot be scheduled.
 */
private static boolean schedulePeriodicPrecacheTask(Context context) {
    PeriodicTask task = new PeriodicTask.Builder()
                                .setPeriod(WAIT_UNTIL_NEXT_PRECACHE_SECONDS)
                                .setPersisted(true)
                                .setRequiredNetwork(PeriodicTask.NETWORK_STATE_UNMETERED)
                                .setRequiresCharging(ChromeVersionInfo.isStableBuild())
                                .setService(ChromeBackgroundService.class)
                                .setTag(PERIODIC_TASK_TAG)
                                .build();
    return sTaskScheduler.scheduleTask(context, task);
}
项目:365browser    文件:BackgroundTaskSchedulerGcmNetworkManager.java   
private static Task.Builder getPeriodicTaskBuilder(TaskInfo.PeriodicInfo periodicInfo) {
    PeriodicTask.Builder builder = new PeriodicTask.Builder();
    builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs()));
    if (periodicInfo.hasFlex()) {
        builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs()));
    }
    return builder;
}
项目:stock-hawk-app    文件:StockListActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_stock_list);
    ButterKnife.bind(this);

    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayShowTitleEnabled(true);
    }

    if (findViewById(R.id.stock_detail_container) != null) {
        mTwoPane = true;
    }

    if (savedInstanceState == null) {
        // The intent service is for executing immediate pulls from the Yahoo API
        // GCMTaskService can only schedule tasks, they cannot execute immediately
        Intent stackServiceIntent = new Intent(this, StockIntentService.class);
        // Run the initialize task service so that some stocks appear upon an empty database
        stackServiceIntent.putExtra(StockIntentService.EXTRA_TAG, StockIntentService.ACTION_INIT);
        if (isNetworkAvailable()) {
            startService(stackServiceIntent);
        } else {
            Snackbar.make(mCoordinatorLayout, getString(R.string.no_internet_connection),
                    Snackbar.LENGTH_LONG).show();
        }
    } else {
        mChangeUnits = savedInstanceState.getInt(EXTRA_CHANGE_UNITS);
        if (savedInstanceState.getBoolean(EXTRA_ADD_DIALOG_OPENED, false)) {
            showDialogForAddingStock();
        }
    }

    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.addOnItemTouchListener(new RecyclerViewItemClickListener(this, this));

    mAdapter = new QuoteCursorAdapter(this, null, mChangeUnits);
    mRecyclerView.setAdapter(mAdapter);

    getLoaderManager().initLoader(CURSOR_LOADER_ID, null, this);

    ItemTouchHelper.Callback callback = new ItemTouchHelperCallback(mAdapter);
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
    itemTouchHelper.attachToRecyclerView(mRecyclerView);

    // Create a periodic task to pull stocks once every hour after the app has been opened.
    // This is so Widget data stays up to date.
    PeriodicTask periodicTask = new PeriodicTask.Builder()
            .setService(StockTaskService.class)
            .setPeriod(/* 1h */ 60 * 60)
            .setFlex(/* 10s */ 10)
            .setTag(StockTaskService.TAG_PERIODIC)
            .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
            .setRequiresCharging(false)
            .build();
    // Schedule task with tag "periodic." This ensure that only the stocks present in the DB
    // are updated.
    GcmNetworkManager.getInstance(this).schedule(periodicTask);

}
项目:WindowJobScheduler    文件:WindowJobScheduler.java   
public static void schedule(Context context, PeriodicTask task, GregorianCalendar start, int windowHours){
    Intent intent = new Intent(context, ScheduleReceiver.class);

}