Android 使用RecyclerView显示PublisherRadView

Android 使用RecyclerView显示PublisherRadView,android,admob,google-play-services,Android,Admob,Google Play Services,我需要在使用RecyclerView小部件构建的列表中显示一些带有PublisherView的横幅,我不知道如何将PublisherView生命周期映射到ViewHolder一个 PublisherAdView文档提到了三种生命周期方法: resume():在上次调用pause()后恢复PublisherView。应该在父活动的onResume()方法中调用此方法 pause():暂停与此publisherView关联的任何额外处理。应该在父活动的onPause()方法中调用此方法 destr

我需要在使用
RecyclerView
小部件构建的列表中显示一些带有
PublisherView
的横幅,我不知道如何将
PublisherView
生命周期映射到
ViewHolder
一个

PublisherAdView
文档提到了三种生命周期方法:

  • resume()
    :在上次调用pause()后恢复PublisherView。应该在父活动的onResume()方法中调用此方法
  • pause()
    :暂停与此publisherView关联的任何额外处理。应该在父活动的onPause()方法中调用此方法
  • destroy()
    :销毁发布视图。应该在父活动的onDestroy()方法中调用此方法。在调用destroy()之后,不应在PublisherAddressView上调用其他方法
问题在于,
ViewHolder
可以随时创建和销毁,并且其生命周期与活动无关。另外,我的
RecyclerView
片段中,后者有自己的生命周期

我的想法是:

  • 调用
    RecyclerView.Adapter.onViewAttachedToWindow()中的
    resume()
  • 调用
    RecyclerView.Adapter.onViewDetachedFromWindow()中的
    pause()
但我不确定如何正确调用
.destroy()


有这方面的经验吗?有什么最佳实践吗?

你找到这个问题的解决方案了吗?我完全按照我上面写的方式来做,它是如何工作的。@riccardocovati你把destroy叫做哪里?@q126y不幸的是,我不得不写一个变通办法:我把所有publisherView保存在一个
WeakHashMap
创建的
集中,然后我调用
destroy()
Fragment#onDestroyView中的
method
@MyDogTom好吧,片段生命周期与视图持有者生命周期不同。当片段处于活动状态时,包含PublisherdView的ViewHolder可以连接/分离多次,因此我认为暂停并相应地恢复它更安全。也就是说,我不能保证我的方法是最好的,但它已经在我们的高流量应用程序中实现了,并且工作没有缺点。