我正在构建的 Android 应用程序中使用 Facebook 的 Audience Network。我的 onCreate 方法代码是,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
this.facebookAdOneLayout = (RelativeLayout) findViewById(R.id.facebook_ads_one);
loadFacebookBannerAds();
}
还有我加载 Facebook 广告的代码,
private void loadFacebookBannerAds() {
this.facebookAdOne = new com.facebook.ads.AdView(this, getString(R.string.fb_ad_id_one),
AdSize.BANNER_320_50);
//This setting is to load test ads served by Facebook. Just delete whole line in live app
AdSettings.addTestDevice("TestDeviceID");
this.facebookAdOneLayout.addView(this.facebookAdOne);
this.facebookAdOne.loadAd();
}
现在,我还通过在 onPause、onDestroy 和 onStop 中调用 destroy()
方法来销毁 facebook 广告
if (facebookAdOne != null) {
facebookAdOne.destroy();
}
我还在调用 Facebook 的 destroy 方法后调用 onPause、onStop 和 onDestroy 的所有 super 方法。因此,当我通过单击后退按钮退出 Activity 时,在我的 android 监视器中,我收到一条错误消息,指出,
Activity test.app.MainActivity has leaked IntentReceiver com.facebook.ads.internal.h$c@94eb1f that was originally registered here. Are you missing a call to unregisterReceiver()?
android.app.IntentReceiverLeaked: Activity test.app.MainActivity has leaked IntentReceiver com.facebook.ads.internal.h$c@94eb1f that was originally registered here. Are you missing a call to unregisterReceiver()?
谁能告诉我该怎么做?错误在哪里?我尝试了很多来寻找解决方案,但在网上找不到任何东西。
谢谢,
最佳答案
在Facebook Audience network changelog , 有一行提到 4.16.0 版本(2016 年 9 月 27 日发布)中内部类 LocalBroadcastReceiver 导致的内存泄漏。
Memory leak caused by LocalBroadcastReceiver holding onto MediaView reference
如果您创建许多 MediaView,实例使用的资源将无法正确释放,最终导致 OutOfMemoryError . 从版本 4.16.0 开始,此错误似乎已修复,我注意到没有内存泄漏。
不幸的是,4.16.0版本似乎又出现了另一个问题。 根据我的经验,MediaView 中的视频不再自动播放。此外,自动播放的控制已被删除,我们可以从 4.16.0 更新日志中看到:
setAutoplay and setAutoplayOnMobile deprecated in MediaView
对于 4.18.0(含)之前的版本仍然如此。我无法使用 4.19.0 版进行测试,因为它神秘地使我的应用程序在自定义 View 膨胀期间崩溃(仍在尝试找出原因)。
关于java - 为什么 Android Facebook Audience 网络即使在调用 destroy 方法后仍会泄漏 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967885/