Tasks and Back Stack是了解涉及任务及其与“后退”按钮交互的机制的权威资源。在早期段落中:
任务是一系列活动 用户与之交互的时间 从事某项工作。该 活动排成一堆 (“后堆栈”),按顺序排列 每项活动都开放了。
然后根据主屏幕以及它如何启动进程来解释任务。这是有道理的。不过我很好奇:在“用户”应用程序中应该决定使用多个任务的原因是什么?
我对直观理解或启发式指导任务的使用感兴趣,而不是简单地尝试在后台堆栈上实现特定的活动排序。
答案 0 :(得分:3)
任务是一组组件,它们协同工作以实现用户的目的(不一定是非常特定的目的,但仍然是一个目的)。这是用户所看到的应用程序。
存在音乐播放器以允许用户管理和播放歌曲。它可以包括显示专辑/艺术家/歌曲元数据,控制回放,组织播放列表等的各种活动。它还可以包括实现回放和观看新歌曲的服务。用户不知道活动和服务是什么;他或她只知道这一系列的屏幕让他或她管理和播放歌曲。
从开发的角度来看,任务中的活动不需要属于同一个“应用程序”。如果音乐播放器任务允许用户将图像链接到歌曲,则它可以启动图像库活动或相机活动。由于新活动仍然是为了管理歌曲,它仍然是同一任务的一部分。
另一方面,如果用户完全脱离了任务的目的,可能是时候开始另一个任务了。例如,如果您启动Web浏览器以查看艺术家的网站,则用户现在正在做一些不同的事情。用户可能不会将网页浏览与管理和播放歌曲相关联,因此这应该是一项不同的任务。
答案 1 :(得分:-1)
我认为在给定的上下文中的任务是一种工作流程。收电子邮件。撰写新电子邮件可能包括 首先填写收件人,然后在下一个活动中选择收件人,然后点击发送终于发送电子邮件。 另一项任务可能是选择多封电子邮件,然后一次性全部删除。
在实践中,您经常会发现AsyncTask
基本上是在后台工作,否则会阻止UI线程并使应用无响应。