2012-04-19 69 views
1

我對Android非常陌生,但在過去的兩三個星期裏,我設法弄清楚了它的大部分內容以及工作原理。 但是,有一件事仍然困擾着我 - 活動和簡單形式之間的基本區別是什麼?那麼,我知道Android沒有「形式」這樣的東西,但是我的意思是全屏佈局的元素具有一個基礎類,並且它的所有功能都在其中執行,而不是在全過程類中執行(活動,確切地說)。Android中的活動和簡單表單之間的根本區別是什麼?

只要我明白,Activity是一個獨立的進程,由OS實例化,執行一些基本獨立於整個應用程序的操作。這也意味着我們只能運行其中一個應用程序的活動,並且仍然可以執行其所有功能,而無需加載整個應用程序。例如,如果我們有一個電影播放器​​,也可以將電影從一個編解碼器轉換爲另一個編解碼器,我們可以將該功能作爲單獨的「活動」來實現,以便其他應用程序(如文件管理器)也能夠使用表示Activity,而不是整個應用程序。

而這看起來非常簡單。問題是,爲什麼每個人都使用單獨的活動來實現不能將與應用程序分開的功能?換句話說,人們通常使用活動,我認爲簡單的形式在同一過程中會更合適。例如,我已經看到人們使用單獨的Activity來處理諸如應用程序設置之類的事情,這顯然不會在應用程序本身之外啓動,或者編輯特定於應用程序的數據,這也不會在應用程序之外完成,因爲要編輯的數據應該從只有應用程序已知的列表中選擇。

另一個例子正好來自我的經驗 - 一個單位轉換器應用程序。它有一個帶有單元類別的GridView的主菜單,每個類別都有一個單元列表,通過點擊任何單元我們有一個'計算器'表單來輸入我們想要轉換的值。如果我像所有人一樣這樣做,我會有三個活動 - 一個用於主菜單,一個用於單元列表,另一個用於輸入值。但爲什麼?爲什麼我想要啓動與應用程序分開的三項活動中的任何一項?如果我想要啓動主菜單活動 - 那麼爲什麼不啓動整個應用程序呢?如果我只想要一個單元列表 - 再次啓動整個應用程序,它不像是某個Facebook客戶端將在壓力單元之間轉換值(因爲單元列表一次只能涵蓋一個類別)。並且爲計算器啓動一項活動根本行不通,因爲它應該返回到列表以執行轉換,並且您不會啓動列表活動。

反正就算我錯了,人們使用它明智地還是有一個問題,Android的SDK並沒有真正提供形式,因爲我已經習慣了任何支持。是的,有些東西像ViewAnimator,ViewSwitcher等等。但他們所做的只是將佈局切換到原來的位置,而且很難在表格之間切換。因此,至少接近該功能的唯一選擇是使用活動。我們又回到了廣場。

因此,簡單地說 - 我錯過了Android的哲學?因爲我非常確定爲應用程序中的每個表單使用一個單獨的Activity(以及一個單獨的進程)是一種矯枉過正的行爲。如果真的是這樣,每個人都知道 - 爲什麼Android沒有任何實質的形式切換機制?

在此先感謝您對此問題的任何澄清。

回答

4

一個活動不會在單獨的過程中產生(除非您明確告訴它)。您的APK中的所有內容都將在您的過程中產生。即使其他應用程序因任何原因正在使用您的活動。

您可以通過在清單中不指定任何意圖過濾器來將您的活動「有效」私有給您的應用程序。

對於給出的例子,表單等於一個活動。當你深入研究Android時,這不是一個普遍的陳述,但對於初學者來說,這是一個很好的比喻。另一個常見的比喻是活動比傳統的基於形式的UI更像網頁。

相關問題