android - Admob 横幅在多个 fragment 中的性能问题

标签 android android-fragments admob banner adview

我有一个应用程序,其中一个主要 Activity 是使用 FrameLayout。许多 fragment 是根据用户的输入创建的。每个 fragment 都有一个使用 Adview 的 admob 横幅广告。

我使用代码添加 fragment ;

getSupportFragmentManager().beginTransaction()
                           .add(R.id.container, Constants.frg1, Constants.frgTag1)
                           .addToBackStack(Constants.frgTag1)
                           .commit();

我不想使用 transaction.replace() 方法,因为我不想在所有 fragment 都在获取数据的反压时重新创建我之前的 fragment 来自远程服务器。

因此,当我添加新 fragment 时,会在 onCreateView 方法中的新 fragment 内创建一个新的 Adview。

在获得大约 10 个 fragment 后,我的应用程序开始变得迟钝。当我不使用 Adview 时,性能没有问题。

您可以说我只能在包含 fragment 的 MainActivity 中使用一个 Adview,但我不想这样,因为我有一个在应用程序中可见的 BottomNavigationView。 BottomNavigationBar + Adview = 屏幕上我的应用程序内容所剩无几。

那么有没有什么想法可以使用许多 fragment 来优化我的应用程序性能,并且每个 fragment 都有自己的 AdView

最佳答案

After get around 10 fragments my app starts to get laggy. When I dont use Adview there is no problem with the performance.

如果您向 backStack 添加多个 Fragment,您的应用将需要更多资源来存储这些元素,现在在每个 Fragment 上添加广告会导致高资源消耗、快速耗电、应用缓慢等。

Fragments的使用在应用程序中旨在表示 Activity 中 UI 的一部分,实际上您将使用完整的 Fragment 来更改 Activity 中的所有 UI。

在后台堆栈中保留多个 Fragment 几乎就像在堆栈中保留多个 Activity,这种方法是不正确的,会导致您的应用程序出现问题!

如何使用多个 fragment/广告优化您的应用

1) 使用 Activity 的方法 onPause() 销毁广告,如果您正在使用 Activity ,则使用 onResume() 重新创建广告

How to solve adview CPU consuming.

2) 通过java代码实现Admob:

AdMob banners cause high CPU usage

3) 启用hardware Acceleration :

启用您的 Activity :

 <activity android:hardwareAccelerated="true" />

或者在你所有的应用程序中:

<application android:hardwareAccelerated="true">

4) 最重要的是,尝试改变您的方法,如果您使用的是 fragment ,您将使事务在内存中只有一个。

关于android - Admob 横幅在多个 fragment 中的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47623584/

相关文章:

android - 仅滑动 Android 中 View 寻呼机 View 的半 View

java - 日期选择器和时间选择器 - 设置最大值和最小值

android - 如何将 getAmplitude() 的值转换为其对应的 RMS 电压值 (mV)

android - 每行放置 2 列回收器 View

ios - 每个约束项都必须是 View 或布局指南

java - Android ListView 数组索引越界异常 - 没有线索?

android - 如何向操作栏/工具栏添加后退按钮

java - 从java代码而不是布局文件中扩展UI

android - Google 移动广告 - 获取发布商提供的位置

javascript - 为什么我的 AdMob 横幅广告在 Expo Client 中显示,但在最终版本中却没有显示?