2011-03-02 36 views
4

Tasks and Back Stack是用于了解涉及任务及其与Back按钮的交互的机制的权威资源。在早期的一段话:直观理解Android任务

任务是活动 用户时 执行某个任务交互的集合。的 活动布置成堆叠 (“背面堆”),其中每个活动被打开 的顺序。

然后根据主屏幕以及它如何启动进程来解释任务。这是有道理的。但我很好奇:什么应该决定在“用户”应用程序中使用多个任务?

我感兴趣的是一个直观的了解或启发式引导任务的使用,而不是简单地试图达到的回栈上的活动的具体排序。

回答

3

任务是一组连贯的工作一起完成该用户的目的组件(不一定是非常特定的用途,但目的仍然)。这就是用户所看到的应用程序。

存在音乐播放器以允许用户管理和播放歌曲。它可能包括显示专辑/艺术家/歌曲元数据,控制播放,组织播放列表等的各种活动。它还可能包括实现播放和观看新歌曲的服务。用户不知道活动和服务是什么;他或她只知道这一系列的屏幕让他或她管理和播放歌曲。

在任务中的活动并不需要属于从发展的角度来看,同“应用”。如果音乐播放器任务允许用户将图像链接到歌曲,则可能会启动图像库活动或相机活动。由于新活动仍在努力达到管理歌曲的目的,它仍然是同一项任务的一部分。

另一方面,如果用户完全摆脱了任务的目的,那么可能是时候开始一个不同的任务了。例如,如果您启动Web浏览器来查看艺术家的网站,用户现在正在做一些不同的事情。用户可能不会将网页浏览与管理和播放歌曲相关联,所以这应该是一个不同的任务。

+0

你是说从用户的角度来看,任务形成一种“应用程序”,可能不是来自一个? – 2011-03-02 22:49:35

+0

@Matthew:对。这项任务可能会从各种软件包中提取活动,但这些活动都可以共同完成任务的目的。从用户的角度来看,它是与桌面应用程序最接近的Android平台。 – erichamion 2011-03-02 22:54:53

+0

从你的个人资料来看,我应该问你问题,而不是相反。尽管如此,活动/任务的想法是我在阅读之后才感悟到的,它让人困惑不解,在一本介绍性的Android书籍(涉及在多个活动之间的制作和转换)以及重新阅读任务方面取得了不错的成绩。 – erichamion 2011-03-02 23:00:43

-1

我觉得在这方面给出的任务是不大不小的工作流程。拿电子邮件。写一封新邮件可能包含 首先填写收件人,然后在下一个活动中选择收件人并点击发送,最后发送邮件。 另一项任务可能是选择多个电子邮件,然后一次删除所有电子邮件。

在实践中你经常会发现是一个AsyncTask这基本上是做在后台工作,否则会阻塞UI线程,使应用程序无响应。

+1

我不确定AsyncTask是活动/后备堆栈意义上的任务。 – 2011-03-02 21:33:55