Chinese, Simplified subtitles

← 2WuR5S_6LD4

2WuR5S_6LD4

Get Embed Code
7 Languages

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

  1. 现在我们拥有了简单的服务。
  2. 很容易吧?
  3. 但它仍无法自行唤醒。
  4. 幸运的是,
    有相应的系统服务。
  5. 借此机会向大家
    介绍警报管理器。
  6. 利用警报管理器,
    可以告知系统您想它
  7. 在一段时间后唤醒
    应用程序的组件,
  8. 并在后台进行一些处理。
  9. 甚至可以让系统
    定期唤醒应用程序,
  10. 但在后台要唤醒什么?
  11. 那是我们之前
    未见过的 Android 组件,
  12. 它叫做广播接收器。
  13. 广播接收器是特殊的类,
    用于接收
  14. 通常来自其他
    应用程序的意图广播。
  15. 通常,广播接收器
    会为这些广播注册
  16. 意图筛选器。
  17. 它也是应用程序侦听
    警报的一个途径。
  18. 警报利用一种称为
    PendingIntent 的新意图。
  19. PendingIntent 是
    一种特殊的意图,
  20. 它在应用程序
    之间传递。
  21. PendingIntent 和常规意图
    最大的区别在于
  22. PendingIntent 为使用它的
    应用程序提供权限,以发送
  23. 具有相同权限的数据,并将
    应用程序标识指定为创建它的应用。
  24. 在 Android 中,这允许系统
    进程在不破坏 Android 安全模型
  25. 的情况下通过特定的异步
    方式回调应用程序。
  26. 在警报中,警报管理器
    使用待定的意图
  27. 与我们创建的广播
    接收器通信。
  28. 让我们添加一些警报内容。
  29. 首先,我将
    BroadcastReceiver 添加为
  30. SunshineService 的静态内部类。
  31. 由于其为 Android 组件,
  32. 因此我将在清单中
    注册该广播接收器。
  33. 请注意如何用符号
    来表示静态内部类。
  34. 好了。
  35. 我已经提供了可以处理
    警报的广播接收器的框架。
  36. 现在轮到您发挥了。
  37. 您可以从显式意图
    创建 PendingIntent,
  38. 以让警报管理器
    激活您的广播接收器。
  39. 建议您将警报
    设置为特别短,
  40. 例如五秒钟,以便
    测试警报是否有效。