2012-06-21 65 views
1

Android(版本2.3)的應用程序內存太少時。當我打開瀏覽器並打開四張有30-40MB空閒卡的筆記本時,我在一臺擁有140 MB內存的設備上進行了測試。我的應用程序是10 MB,但如果你開始使用另一個Android本身它關閉。是否有可能迫使Android永遠不要關閉應用程序?這很煩人,我在這個應用程序和會話變量(ApplicationState)返回後開始發生奇怪的事情。禁用自動關閉應用程序Android

+0

前臺服務 – Jug6ernaut

回答

1

不,這是不可能的。你可以做的最好的是使用前臺服務,但即使這樣也不能保證你的應用程序不會被殺死。

聽起來像你可能真的想要存儲應用程序的狀態,以便當你重新啓動它時處於相同的狀態,用戶將它留在它。如果你正確地存儲和恢復應用程序狀態,你不應該得到奇怪的事情發生。

您是否瞭解Activity的生命週期?如果沒有,我建議你閱讀它。

2

簡單的答案是「這是不可能的」。您可以嘗試使用前臺服務here is a sample,但即使如此,您也無法保證您的應用不會被殺死。如果android確實需要更多重要應用程序的內存,例如電話。

而不是試圖做你所描述的東西,我建議你其實仔細查看Activity lifecycle和實施適當的回調來保存和恢復您的會話/狀態。

+0

哇,這是完全不能接受的。顯然,Google在2.2版中引入了這個「功能」,因爲之前的應用不會因爲您切換到其他應用(例如,獲取您所需的應用所需的信息)而無法無故喪命,強制在許多情況下需要重新登錄。 – Michael

+1

此外,這種行爲完全破壞了許多我無法控制的應用程序 - 網絡瀏覽器,YouTube,vnc查看器,我的在線銀行應用程序等的行爲。我厭倦了Android讓我的應用程序死機,只是因爲它感覺像它。這是錯誤的,Google應該嘲笑這個糟糕的決定。針對谷歌的意見,不是你btw - 只是發泄,因爲我無法控制谷歌或任何方式來解決它。 – Michael

+0

@Michael我同意這不是最理想的行爲,但是有必要保持系統的穩定性。它沒有在2.2版中引入 - 它一直在那裏。它存在於我的舊2.1手機中,在1.6模擬器中也很容易看到。 –

3

它只能通過修改android系統本身(即重建或至少生根)來完全防止這種情況。即便如此,在內存壓力的某個時刻,阻止應用程序被殺也會導致用戶在前臺嘗試執行任何操作,甚至是通常的設備。

根據活動生命週期,正如其他人已經建議的那樣,您最好能妥善處理被殺死的可能性。