diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs index 9e156d0821d3b..b5ecf5cf6a471 100644 --- a/docs/html/training/training_toc.cs +++ b/docs/html/training/training_toc.cs @@ -1098,6 +1098,10 @@ ja-lang="再生中カードを表示する"> Displaying a Now Playing Card +
  • + + Enabling Background Playback +
  • diff --git a/docs/html/training/tv/playback/index.jd b/docs/html/training/tv/playback/index.jd index e39e34a0e971e..43c6d41e09c19 100644 --- a/docs/html/training/tv/playback/index.jd +++ b/docs/html/training/tv/playback/index.jd @@ -64,4 +64,7 @@ startpage=true
    Displaying a Now Playing Card
    Learn how to use a MediaSession to display a Now Playing card on the home screen.
    + +
    Enabling Background Playback
    +
    Learn how to continue playback when the user clicks on Home.
    diff --git a/docs/html/training/tv/playback/options.jd b/docs/html/training/tv/playback/options.jd new file mode 100644 index 0000000000000..c65343df68056 --- /dev/null +++ b/docs/html/training/tv/playback/options.jd @@ -0,0 +1,66 @@ +page.title=Enabling Background Playback +page.tags=tv, play, playback, background +helpoutsWidget=true + +trainingnavtop=true + +@jd:body + +
    +
    +

    This lesson teaches you to

    +
      +
    1. Request Background Playback
    2. +
    +
    +
    + +

    +A user watching content on a TV device may decide to switch to the TV launcher at any time. +If a user switches to the launcher while using a TV playback app, by default the app is paused. +Since the user did not explicitly request to pause playback, the default behavior might seem +abrupt and unexpected. This lesson describes how to enable background playback in your app, +which provides a better user experience. +

    + +

    Request Background Playback

    + +

    Normally, when the user clicks on Home to display the TV +launcher, the activity pauses. However, your app can request background playback, in +which the activity continues playing behind the TV launcher.

    + +

    To request background playback, call +{@link android.app.Activity#requestVisibleBehind requestVisibleBehind()}. +Be sure to clean up media resources if the activity stops being +visible. For example, you should free media resources if +{@link android.app.Activity#requestVisibleBehind requestVisibleBehind()} +returns false to indicate that the request failed, or if the system calls +your override of {@link android.app.Activity#onVisibleBehindCanceled onVisibleBehindCanceled()}. +

    + +
    +@Override
    +public void onPause() {
    +  super.onPause();
    +  if (mVideoView.isPlaying()) {
    +    // Argument equals true to notify the system that the activity
    +    // wishes to be visible behind other translucent activities
    +    if (! requestVisibleBehind(true)) {
    +      // App-specific method to stop playback and release resources
    +      // because call to requestVisibleBehind(true) failed
    +      stopPlayback();
    +    }
    +  } else {
    +    // Argument equals false because the activity is not playing
    +    requestVisibleBehind(false);
    +  }
    +}
    +
    +@Override
    +public void onVisibleBehindCanceled() {
    +  // App-specific method to stop playback and release resources
    +  stopPlayback();
    +  super.onVisibleBehindCanceled();
    +}
    +
    +