2012-11-25 70 views
0

我知道關於如何Android能殺死不需要處理,如果被其他應用程序所需的內存,BU我不喜歡的應用程序的下面的行爲我此刻的發展:的Android永遠關機應用 - 不受歡迎的行爲

  • 我開始我的應用程序,它有很多不同的屏幕/活動
  • 使用它後,我按下我的手機的主頁按鈕並切換到其他應用程序。 (可以說我在屏幕C上的活動C處於活動狀態時執行了此操作)。

我的手機是HTC One X,我查了一下,當我運行我通常需要的應用程序時,總是會有大約300MB的可用內存。

問題: 即使我在幾天後重新啓動應用程序而未使用該應用程序,該應用程序將在屏幕C上的Activity C重新啓動。在我看來,在未使用該應用程序幾天後,應該重新啓動我創建的「歡迎屏幕」。由於沒有使用BackgroundProcesses或Ressources(所有這些都是通過按按鈕完成的,因此不需要自動後臺處理),我認爲Android並不需要殺死它。

是否有人知道,「Android最佳實踐」是如何看起來像這樣的,或者我可以在這種情況下閱讀應用程序應該具備的行爲?

(...我不是在找代碼,但我不知道我應該去什麼樣的方式來解決這個問題)

非常感謝您的幫助

+0

只需使用onResume(),當您的應用程序返回前臺時將調用onResume(),以便根據需要設置它。關鍵是你不能假設Android是否會或者不會銷燬你的活動並使用onCreate(),onResume()和onStart()正確地讓你完全控制什麼時候顯示什麼。如果您希望顯示歡迎屏幕,則在活動C onResume()中,啓動歡迎活動並完成活動C.但是,這不是用戶期望應用程序工作的方式。我希望如果我使用其他應用程序,然後返回到上一個應用程序,那麼它將恢復到離開它的位置。 – Simon

+0

第一thnx爲您的答案!我不確定!如果在關閉和重新啓動之間有幾天時間,你是否也期望這樣? – user1769165

+0

Android可能會在onPause()後立即銷燬您的活動,它可能會在2周後銷燬它,或者它可能永遠不會銷燬它。關鍵是你不應該假設,你應該永遠處理生命週期。 – Simon

回答

0

如果我沒有弄錯,以下國旗可以幫助你,當用Intent開始新的ActivityFLAG_ACTIVITY_NO_HISTORY。正如文檔所述:

f set,新的活動不會保留在歷史堆棧中。只要用戶離開它,活動就完成了。

所以,如果你所有的Activities,除了歡迎屏幕中,使用此標誌開始,下一次用戶回來到您的應用程序,他到達歡迎屏幕。此解決方案的缺點是,如果用戶在處理應用程序時接到呼叫,則在呼叫結束時他也將轉移到歡迎屏幕。不知道是否有其他解決方案。希望這可以幫助。

+0

非常感謝你!我會像上面提到的那樣做!計算時間跨度..... – user1769165

1

我想你可以很容易地做finish()活動的onPause()方法。

不確定這是否是最佳做法。等待其他答案。