Return to Video

1px-2ozv9lE

  • 0:00 - 0:04
    还记得在第二课中,
    Katherine 使用
  • 0:04 - 0:07
    AsyncTask 连接至“刷新”按钮来
    更新我们的数据吗?
  • 0:07 - 0:10
    Rato 谈到了为什么
    这是个坏主意,
  • 0:10 - 0:15
    因为 AsyncTask 并
    没有关联到活动生命周期。
  • 0:15 - 0:18
    即使在 Android 为
    该活动调用 onDestroy
  • 0:18 - 0:21
    并预期它被丢弃后,
    只要 AsyncTask 还在运行,
  • 0:21 - 0:26
    虚拟机将
    保留活动对象。
  • 0:26 - 0:28
    如果旋转手机,
    这一行为将破坏
  • 0:28 - 0:32
    您的活动,并实例化新的活动。
  • 0:32 - 0:35
    原生的 AsyncTask 实现
    包含两个线程,
  • 0:35 - 0:39
    以尝试执行相同的更新
    等等。
  • 0:39 - 0:41
    问题是,这不是
    适用于执行时间
  • 0:41 - 0:44
    可能会很长的
    后台操作(例如
  • 0:44 - 0:46
    从 Web 服务提取数据)的最佳模式。
  • 0:46 - 0:48
    如果离开应用,
    AsyncTask 会继续运行,
  • 0:48 - 0:51
    只要进程保持活跃。
  • 0:51 - 0:54
    但是,它将以低优先级
    运行,并且进程
  • 0:54 - 0:56
    可能在设备
    需要更多资源时
  • 0:56 - 0:58
    第一个被终止。
  • 0:58 - 1:00
    还有一个更大的问题。
  • 1:00 - 1:02
    应用首先
    必须在前台运行
  • 1:02 - 1:05
    且可见才能
    实例化任务。
  • 1:05 - 1:06
    因为我们在启动
  • 1:06 - 1:09
    此应用时开始了
    更新天气的任务,
  • 1:09 - 1:13
    所以,如果天气变化太快,
    可能会出现非期望的行为。
  • 1:13 - 1:16
    因此,我们要学习
    执行更新的正确方式。
  • 1:16 - 1:19
    我们希望当应用
    在前台运行时,
  • 1:19 - 1:20
    进程可以实现自动化。
  • 1:20 - 1:23
    但是,更重要的是,
    我们希望应用
  • 1:23 - 1:26
    可以在后台进行定期更新,
    同时消耗最少的电能。
  • 1:26 - 1:29
    在这节课稍后
    介绍天气通知时,
  • 1:29 - 1:31
    这将
    特别重要。
Title:
1px-2ozv9lE
Description:

1px-2ozv9lE

more » « less
Video Language:
English
Team:
Udacity
Project:
UD853 - Developing Android Apps
Duration:
01:32

Chinese, Simplified subtitles

Revisions Compare revisions