Error: YouTubeService ha filtrado IntentReceiver … ¿Te ha faltado una llamada a unregisterReceiver ()?

Utilizo la API de YoutubeServie para reproducir vídeos de youtube en mi aplicación de Android. Sin embargo, cuando salgo de mi actividad, encontré el siguiente registro de fallos, incluso mi aplicación sigue funcionando.

02-28 15:54:02.081 20374-20374/? E/ActivityThread: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver com.google.android.libraries.youtube.player.audiofocus.HeadsetPlugReceiver@a843e7c that was originally registered here. Are you missing a call to unregisterReceiver()? android.app.IntentReceiverLeaked: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver com.google.android.libraries.youtube.player.audiofocus.HeadsetPlugReceiver@a843e7c that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:898) at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:699) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1637) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1617) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1611) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:488) at com.google.android.libraries.youtube.player.service.PlaybackService.<init>(PlaybackService.java:5034) at com.google.android.libraries.youtube.player.PlayerInjector$12.create(PlayerInjector.java:1602) at com.google.android.libraries.youtube.common.util.Lazy.get(Lazy.java:136) at com.google.android.libraries.youtube.player.PlayerInjector.getPlaybackService(PlayerInjector.java:575) at com.google.android.apps.youtube.api.ApiPlayer.moveToForeground(ApiPlayer.java:493) at com.google.android.apps.youtube.api.ApiPlayer.<init>(ApiPlayer.java:150) at com.google.android.apps.youtube.api.service.jar.ApiPlayerService.<init>(ApiPlayerService.java:131) at com.google.android.apps.youtube.api.service.jar.ApiPlayerFactoryService$1.run(ApiPlayerFactoryService.java:86) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 02-28 15:54:02.088 20374-20374/? E/ActivityThread: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver com.google.android.libraries.youtube.player.audiofocus.AudioBecomingNoisyReceiver@379c216f that was originally registered here. Are you missing a call to unregisterReceiver()? android.app.IntentReceiverLeaked: Service com.google.android.youtube.api.service.YouTubeService has leaked IntentReceiver com.google.android.libraries.youtube.player.audiofocus.AudioBecomingNoisyReceiver@379c216f that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:898) at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:699) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1637) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1617) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1611) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:488) at com.google.android.libraries.youtube.player.service.PlaybackService.<init>(PlaybackService.java:4043) at com.google.android.libraries.youtube.player.PlayerInjector$12.create(PlayerInjector.java:1602) at com.google.android.libraries.youtube.common.util.Lazy.get(Lazy.java:136) at com.google.android.libraries.youtube.player.PlayerInjector.getPlaybackService(PlayerInjector.java:575) at com.google.android.apps.youtube.api.ApiPlayer.moveToForeground(ApiPlayer.java:493) at com.google.android.apps.youtube.api.ApiPlayer.<init>(ApiPlayer.java:150) at com.google.android.apps.youtube.api.service.jar.ApiPlayerService.<init>(ApiPlayerService.java:131) at com.google.android.apps.youtube.api.service.jar.ApiPlayerFactoryService$1.run(ApiPlayerFactoryService.java:86) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

Ninguno de los códigos son de la aplicación de minas, pero todos están en la biblioteca. No he registrado ningún receptor en mi código, así que no puedo anular el registro de nada en mi fragmento que funcione con el youtubeservice.

Creo que el problema es similar a https://groups.google.com/forum/#!topic/android-developers/6gzpwkaRgoE pero no hay respuesta. ¿Alguna idea de cómo deshacerse de este bloqueo interno de youtube.api.service?

Incluso si no registra manualmente ningún receptor, una actividad puede registrarlo para usarlo de alguna manera en la actividad actual. Creo que deberías llamar al método unregisterReceiver () on onPause () .

Tenga en cuenta que onDestroy () y onStop () no están garantizados para ser llamados. Si se llama OnPause (), la actividad ya no está en primer plano.

OnStop ():

Se llama cuando ya no es visible para el usuario. A continuación, recibirá OnRestart (), onDestroy (), o nada, dependiendo de la actividad posterior del usuario. Tenga en cuenta que este método nunca se puede llamar en situaciones de memoria baja en las que el sistema no tiene suficiente memoria para mantener el proceso de su actividad en ejecución después de que se llama a su método onPause ().

Para más información, aquí está el enlace: http://developer.android.com/reference/android/app/Activity.html#onStop%28%29

Afortunadamente, también encontré algunos elementos de stackoverflow a los que puedes referirte:

  • Actividad ha filtrado IntentReceiver que se registró originalmente aquí. ¿Le falta una llamada para anular el registroReceiver ()?
  • No se puede reproducir el video de youtube en mi aplicación de Android
  • ¿Le falta una llamada para anular el registroReceiver ()? En android

Espero que esto sea de ayuda.

He resuelto esto:

En manifest.xml Declare algo como esto.

 <activity android:name=".YouTubeActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="landscape" android:theme="@style/AppTheme.NoActionBar" /> 
  • Android Java Youtube API v3.0 obtener enlace de vídeo RTSP
  • Reproducir video de Youtube en segundo plano usando el reproductor de youtube api
  • Utilice la API de reproductor de youtube android para establecer la calidad de reproducción de vídeo
  • ¿Hay una versión HD (Higher Quality) .3gp de vídeo en youtube para los jugadores de HTML?
  • Api de YouTube: No está conectado. Llame a connect () y espere a que onConnected () se llame
  • Anuncios de Youtube antes del video dirigido
  • API de YouTube de Android "Se ha producido un error al inicializar el reproductor de YouTube"
  • Cómo utilizar Youtube Player con UI moderna en Android usando YoutubePlayerSupportFragment
  • Android webview html5 vídeo autoplay no funciona en android 4.0.3
  • YouTubePlayerAPI ¿Agenda para la distribución?
  • ¿Cómo subir un video a YouTube en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.