小编典典

如何避免Admob阻塞UI线程

java

我发现我的某些活动在启动时被阻止。因此,我在一个新项目中编写了该代码:

public class LayoutTestActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        long now = System.currentTimeMillis();

        new AdView(this, AdSize.BANNER, "MY_ID");

        Log.e("Admob Test","The UI was blocked "+(System.currentTimeMillis()-now)+"ms");
    }
}

结果是第一次创建AdView对象会阻塞UI线程1到2秒钟。

有什么办法可以避免这种情况?

谢谢


阅读 245

收藏
2020-11-16

共1个答案

小编典典

您正在UI线程中创建AdView,这就是被阻止的原因。在AdView初始化期间,线程不会执行其他任何操作。

您可以尝试在另一个线程中加载AdView,也可以使用AsyncTask以用户界面安全的方式加载它。

检查此内容以获取有关Android中AsyncTask和线程的更多信息。

http://developer.android.com/reference/android/os/AsyncTask.html

2020-11-16