活动泄漏了最初绑定在此处的ServiceConnection com.google.android.youtube.player

活动泄漏了最初绑定在此处的ServiceConnection com.google.android.youtube.player,android,memory-leaks,android-fragments,android-youtube-api,serviceconnection,Android,Memory Leaks,Android Fragments,Android Youtube Api,Serviceconnection,我正在使用一个布局为android.support.v4.view.ViewPager的活动,我使用它来操作选项卡导航。对于不同的选项卡,我有不同的片段。在我的第三个选项卡上,我正在从我的YouTube帐户加载一些YouTube缩略图 当我加载应用程序(当我停留在第一个选项卡上时)并按Back退出应用程序时,它存在,没有任何问题。但当我导航到第二个选项卡并尝试按“后退”按钮时,应用程序存在一个错误,如下所示 E/ActivityThread(7187): Activity package.nam

我正在使用一个布局为android.support.v4.view.ViewPager的活动,我使用它来操作选项卡导航。对于不同的选项卡,我有不同的片段。在我的第三个选项卡上,我正在从我的YouTube帐户加载一些YouTube缩略图

当我加载应用程序(当我停留在第一个选项卡上时)并按Back退出应用程序时,它存在,没有任何问题。但当我导航到第二个选项卡并尝试按“后退”按钮时,应用程序存在一个错误,如下所示

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
我已经将YouTube数据API v3添加到我的项目中

我如何解决这个问题? 为什么在退出第二个选项卡而不是第一个选项卡时会出现错误


这不是一个重复的问题

如果我猜对了,您可以在第二个页面出现时加载api,然后初始化YouTube api。不要将您的活动作为上下文提供,而是尝试将应用程序上下文提供给api。

如果我猜对了,请在第二个页面出现时加载api,然后初始化YouTube api。尝试将应用程序上下文提供给api,而不是将活动作为上下文提供。

我在
TabLayout
中使用了片段来启动Youtube视频。应用程序运行正常,但
Logcat
显示此错误。我发现我没有在加载或未加载缩略图加载程序后释放它们(取决于有效的视频id)。它解决了我的问题。

我在
TabLayout
中使用了片段来启动Youtube视频。应用程序运行正常,但
Logcat
显示此错误。我发现我没有在加载或未加载缩略图加载程序后释放它们(取决于有效的视频id)。它解决了我的问题。

如果我猜对了,在第二个页面出现时加载api,然后初始化YouTube api。不要将活动作为上下文提供,而是尝试将应用程序上下文提供给api@TacB0sS令人惊叹的错误消失了。如果我猜对了,你可以在第二个页面出现时加载api,然后初始化YouTube api。不要将活动作为上下文提供,而是尝试将应用程序上下文提供给api@TacB0sS令人惊叹的错误消失了。将此作为答案,我会接受。我想很多人会不同意我的下一个说法,但我相信除了管理活动堆栈之外,没有理由将您的活动作为上下文提供。出于任何其他原因,我认为开发人员应该提供应用程序上下文,并具有智能上下文管理,因为在大多数情况下,上下文的生命周期使用超出了应用程序中任何特定实体的范围,应用程序的实体除外!你能解释一下为什么OP的方法是有缺陷的,并且提供一个应用程序上下文是合适的吗?我认为应用程序上下文只有在您希望尽可能长时间地保留引用时才可以使用?当然,如果您能够想出任何您想要使用的功能(实用程序/第三方库/api),它们在同一个“屏幕”(活动)中生灭,那么很好,您可以使用该活动作为您的上下文。就我个人而言,每次我尝试它,我很快就意识到我的主要假设是错误的。。。我还想在其他地方使用此功能,因此我在应用程序中管理了该功能的生命周期,使用ApplicationContext跨活动。-希望这是明确的…几乎找不到答案,但有完美的意义,解决了我的问题!应该有更多的观点…我想很多人会不同意我的下一个说法,但我相信除了管理活动堆栈之外,没有理由将您的活动作为上下文提供。出于任何其他原因,我认为开发人员应该提供应用程序上下文,并具有智能上下文管理,因为在大多数情况下,上下文的生命周期使用超出了应用程序中任何特定实体的范围,应用程序的实体除外!你能解释一下为什么OP的方法是有缺陷的,并且提供一个应用程序上下文是合适的吗?我认为应用程序上下文只有在您希望尽可能长时间地保留引用时才可以使用?当然,如果您能够想出任何您想要使用的功能(实用程序/第三方库/api),它们在同一个“屏幕”(活动)中生灭,那么很好,您可以使用该活动作为您的上下文。就我个人而言,每次我尝试它,我很快就意识到我的主要假设是错误的。。。我还想在其他地方使用此功能,因此我在应用程序中管理了该功能的生命周期,使用ApplicationContext跨活动。-希望这是明确的…几乎找不到答案,但有完美的意义,解决了我的问题!我应该得到更多的分数。。。