2011-03-02 39 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