2010-03-18 82 views
1

Android中的切換活動是否啓動新的JVM?看起來每個活動都是作爲自己的「主要」方法運行的。如果我有一個單身人士(通過Guice,在這種情況下不是一個實際的單身人士),我是否應該在每次切換活動時重新創建單身人士?Android中的切換活動是否啓動新的JVM

回答

2

我對Android和一般編程知道的內容完全是黑客攻擊,並沒有正式教導,所以也許其他人需要糾正我,但是,我認爲Android並不會始終啓動新的虛擬機。我讀過它使用Dalvik VM而不是標準的JVM。我無法告訴你究竟是什麼。然而,切換活動意味着輕量級的操作,因爲應用程序可以輕鬆地擁有其中的幾個。如果每次都必須重新創建Dalvik虛擬機,這似乎沒有什麼意義,特別是因爲活動可以輕鬆地在彼​​此之間傳遞信息,調用彼此的方法等。您甚至可以讓一個活動啓動完全獨立的應用程序/任務同時仍然允許他們之間進行一些溝通,所以我不認爲在這種情況下也不會再啓動另一個Dalvik虛擬機。

從您的其他問題來看,爲什麼我們想要進行多項活動,我假設您是Android新手;你有沒有很好的閱讀其文檔,如fundamentals,特別是activity lifecycle?有時候這些信息有點稀疏,他們通常假設讀者已經瞭解了Java,但這對你來說應該不是問題。

+3

一般而言,每個應用程序在單個進程中獲取單個VM。因此,開始您自己的活動通常不會創建新的虛擬機。開始其他人的活動(例如,在URL上打開瀏覽器)很可能會啓動一個新進程併爲該進程提供自己的VM,具體取決於該應用程序是否已在進程中運行。 – CommonsWare 2010-03-18 16:46:08