YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Chinese, Simplified subtitles

← bl-yPp6CIGo

bl-yPp6CIGo

Get Embed Code
5 Languages

Showing Revision 4 created 04/13/2016 by Udacity Robot.

  1. 好,在了解显示插播式广告
    的代码之前,
  2. 我们先简略讨论一下插播式广告。
  3. 使用插播式广告时,
    有两件重要的事情需要考虑。
  4. 第一是
    插播式广告的格式。
  5. 我们知道,插播式广告
    会占用设备的整个屏幕。
  6. 因此,在用户专注使用
    您的应用时,不要去打扰他,
  7. 这一点很重要。
  8. 所以,要考虑的第一件重要的事情,
    是在应用的自然间隙
  9. 显示插播式广告,
    例如在游戏的两个等级之间显示广告。
  10. 插播式广告的第二件重要事情,
    是在显示插播式广告之前
  11. 准备加载。
  12. 为什么这件事很重要?
  13. 如果网络很慢,
    加载插播式广告会
  14. 耗费很长时间。
  15. 到了要显示插播式广告
    的时候,您不希望
  16. 用户坐等广告加载,
    您希望广告能立即显示。
  17. 因此,我们会预先加载。
  18. 在显示广告之前,
    我们会准备加载。
  19. 那么怎样准备呢?
  20. 首先,我们看一下
    插播式广告类。
  21. 该类用于
    加载与显示插播式广告。
  22. 它包含名为 loadAd 的方法,
  23. 但是该方法只会请求
    加载广告,为了避免
  24. 阻止 UI 线程,
  25. 在广告加载之前,
    该方法会立即返回。
  26. 那么我们怎么知道
    广告什么时候加载呢?
  27. 通过设置 AdListener,
    我们可以重载 onAdLoaded 方法。
  28. 在插播式广告完成加载时,
    会调用此方法,
  29. 这样我们就可以调用
    插播式广告的 show 方法了。
  30. 这就是我们将在应用中
    实施的流程。
  31. 您还应该知道,
    插播式广告包含名为 isLoaded 的方法。
  32. 如果您对确切了解
    加载广告的时间没兴趣,
  33. 那么只调用 loadAd 就行了。
  34. 到了要显示广告的时候,
    您可以检查是否已加载广告。
  35. 如果已经加载,
    您可以调用 show 方法。
  36. 否则,完全不会
    显示广告。
  37. 现在我们来检查
    实施这个流程的代码。
  38. 打开
    InterstitialActivity Java 文件。
  39. 首先,我们添加了名为 mInterstital
    的 InterstitialAd 字段,
  40. 对 onCreate 方法
    不做任何更改。
  41. 接下来我们看一下
    loadInsterstitial 方法。
  42. 这段代码应该已经存在,
    因为我们在之前的练习中
  43. 已经设置过。
  44. 然后我们看一下其他代码。
  45. 首先,我们将创建
    InterstatialAd 的实例。
  46. 然后设置 AdUnitId。
  47. 我们将其设置为 this 字符串,
    该字符串将返回测试 InterstitialAds。
  48. 我们已经在资源字符串文件中
    定义了 this 字符串,因此必须
  49. 依次使用 getResources().getString
    与资源 ID 来获得该字符串。
  50. 现在来看一下
    我们谈论的流程。
  51. 在这里您可以看到,我们设置了
    InterstitialAd 的侦听器。
  52. 我们稍后会谈论这个侦听器。
  53. 先在这里设置侦听器,
    然后在这里执行。
  54. 现在您可以看到,我们
    使用生成器创建 AdRequest。
  55. 然后在 InterstitialAd 实例上
    调用 loadAd。
  56. 以自变量的形式提供 AdRequest,
    我们之前曾知道,
  57. 该方法将启动
    广告加载流程,但是
  58. 在广告加载之前,
    该方法会立即返回。
  59. 在这里,侦听器开始运行,
    您可以看到,
  60. 我们根据 ToastAdListener 类,
    在这里创建匿名类。
  61. 您可以看到,
    我们重载 onAdLoaded 方法。
  62. 由于我们在这里
    设置了侦听器,
  63. 因此在完成广告加载时,
    将调用该方法。
  64. 我们调用会显示烤面包消息
    的父方法,
  65. 在此之后是我们在
    ToastAdListener 类中定义的内容。
  66. 然后,我们将禁用按钮的文本
    设置为“显示插播式广告”。
  67. 我们还启用了该按钮。
  68. 这意味着用户
    现在可以按下该按钮。
  69. 按下该按钮时,
  70. 将调用 showInterstitial
    回调方法。
  71. 因此会执行
    showInterstitial。
  72. 简单检查一下
    是否已经加载插播式广告,
  73. 这似乎是不必要的检查,
  74. 因为我们知道
    自调用 onAdLoaded 后已加载广告,
  75. 但是我们还是要检查一下。
  76. 随后,真正显示插播式广告
    的时候到了,
  77. 显示广告时,
    实际上会以全屏模式显示。
  78. 对于按钮,
    我们回到之前的状态,
  79. 将文本设置为“插播式广告未准备就绪”,
    然后禁用。
  80. 最后,回到侦听器。
  81. 如果无法加载广告,将调用
    onAdFailedToLoad 方法。
  82. 在这个示例中,我们会再次
    显示烤面包的消息,
  83. 然后将 ErrorReason
    设置为按钮的文本。
  84. 就是这些,这就是我们
    实施插播式广告的代码。