Activity已泄露最初绑定在此处的ServiceConnection com.google.android.youtube.player

Anu*_*shA 1 android memory-leaks serviceconnection android-fragments android-youtube-api

我正在使用一个带有android.support.v4.view.ViewPager布局的Activity,我用它来操作Tab导航.我有不同的片段用于不同的标签.在我的第三个标签上,我正在从我的YouTube帐户中加载一些YouTube缩略图.

当我加载应用程序时(当我停留在第一个选项卡上时)并按返回退出应用程序,它存在没有任何问题.但是,当我导航到第二个选项卡并尝试按"返回"按钮时,应用程序存在,并显示如下错误.

E/ActivityThread(7187): Activity package.name.ActivityName has leaked ServiceConnection com.google.android.youtube.player.internal.r$e@41e5d180 that was originally bound here
E/ActivityThread(7187): android.app.ServiceConnectionLeaked: Activity package.name.ActivityName has leaked ServiceConnection com.google.android.youtube.player.internal.r$e@41e5d180 that was originally bound here
Run Code Online (Sandbox Code Playgroud)

我已将YouTube Data API v3添加到我的项目中.

我该如何解决这个问题?退出第二个选项卡而不是第一个选项卡时出现错误的原因是什么?

这不是一个重复的问题,.

Tac*_*0sS 9

如果我猜错了,你会在第二页出现时加载api,然后再启动YouTube API.不要将您的活动作为上下文提供,而是尝试向api提供应用程序上下文.

  • 我想很多人不同意我的下一个陈述,但我相信除了管理活动堆栈之外,我没有理由将你的活动作为任何事情的背景. (2认同)
  • 由于任何其他原因,我认为开发人员应提供应用程序上下文,并具有SMART上下文管理,因为在大多数情况下,上下文的生命周期使用超出了应用程序中任何特定实体的范围,除了应用程序的一! (2认同)
  • 当然,如果你能想出你想要使用的任何功能(实用程序/第三方库/ api),它们在同一个"屏幕"(活动)中生存和死亡然后很好,你可以使用Activity作为你的上下文.我是一个人,每次我尝试过,我很快意识到我的主要假设是错误的...我想在其他地方使用这个功能,因此我已经管理了这个功能的生命周期在应用程序中,使用ApplicationContext交叉活动. - 希望很清楚...... (2认同)