
If the service ever has been started but is not in the foreground, the service would be terminated without calling onDestroy(). This is because when onStartCommand returns START_STICKY [1], the app takes the responsibility to stop the service. Note that this change interrupts the user journey when paused, because the notification is removed. Apps can implement playback resumption [2] to give the user an option to resume playback after the service has been terminated. [1] https://developer.android.com/reference/android/app/Service#START_STICKY [2] https://developer.android.com/guide/topics/media/media-controls#supporting_playback_resumption Issue: androidx/media#175 #minor-release PiperOrigin-RevId: 492192690 (cherry picked from commit 6a5ac19140253e7e78ea65745914b0746e527058)
Demos
This directory contains apps that demonstrate how to use Android media modules, like ExoPlayer. Browse the individual demos and their READMEs to learn more.
Running a demo
From Android Studio
- File -> New -> Import Project -> Specify the root
media
folder. - Choose the demo from the run configuration dropdown list.
- Click Run.
Using gradle from the command line:
- Open a Terminal window at the root
media
folder. - Run
./gradlew projects
to show all projects. Demo projects start withdemo
. - Run
./gradlew :<demo name>:tasks
to view the list of available tasks for the demo project. Choose an install option from theInstall tasks
section. - Run
./gradlew :<demo name>:<install task>
.
For example, ./gradlew :demo:installNoDecoderExtensionsDebug
installs the
ExoPlayer demo app in debug mode with no optional modules.