Class PlatformScheduler

  • All Implemented Interfaces:
    Scheduler

    public final class PlatformScheduler
    extends Object
    implements Scheduler
    A Scheduler that uses JobScheduler. To use this scheduler, you must add PlatformScheduler.PlatformSchedulerService to your manifest:
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    
     <service android:name="com.google.android.exoplayer2.scheduler.PlatformScheduler$PlatformSchedulerService"
         android:permission="android.permission.BIND_JOB_SERVICE"
         android:exported="true"/>
     
    • Constructor Detail

      • PlatformScheduler

        public PlatformScheduler​(Context context,
                                 int jobId)
        Parameters:
        context - Any context.
        jobId - An identifier for the jobs scheduled by this instance. If the same identifier was used by a previous instance, anything scheduled by the previous instance will be canceled by this instance if schedule(Requirements, String, String) or cancel() are called.
    • Method Detail

      • schedule

        public boolean schedule​(Requirements requirements,
                                String servicePackage,
                                String serviceAction)
        Description copied from interface: Scheduler
        Schedules a service to be started in the foreground when some Requirements are met. Anything that was previously scheduled will be canceled.

        The service to be started must be declared in the manifest of servicePackage with an intent filter containing serviceAction. Note that when started with serviceAction, the service must call Service.startForeground(int, Notification) to make itself a foreground service, as documented by ContextWrapper.startForegroundService(Intent).

        Specified by:
        schedule in interface Scheduler
        Parameters:
        requirements - The requirements.
        servicePackage - The package name.
        serviceAction - The action with which the service will be started.
        Returns:
        Whether scheduling was successful.
      • cancel

        public boolean cancel()
        Description copied from interface: Scheduler
        Cancels anything that was previously scheduled, or else does nothing.
        Specified by:
        cancel in interface Scheduler
        Returns:
        Whether cancellation was successful.
      • getSupportedRequirements

        public Requirements getSupportedRequirements​(Requirements requirements)
        Description copied from interface: Scheduler
        Checks whether this Scheduler supports the provided Requirements. If all of the requirements are supported then the same Requirements instance is returned. If not then a new instance is returned containing the subset of the requirements that are supported.
        Specified by:
        getSupportedRequirements in interface Scheduler
        Parameters:
        requirements - The requirements to check.
        Returns:
        The supported requirements.