2012-03-10 52 views
1

在iphone中,當我們退出應用程序並通過點擊啓動器圖標再次啓動應用程序時,應用程序從上次打開的屏幕開始,最後一次在退出應用程序之前打開。在Android手機上使用首頁按鈕

當我們退出應用程序使用中心或​​在Android手機上時,我們可以達到android。在android應用程序中,如果通過按下home按鈕退出應用程序,並通過單擊啓動器圖標再次啓動,則應用程序將從上次在退出應用程序之前打開的活動開始。

是否與iPhone保持應用程序在內存方面更長的功能?這是否會在Android的所有時間工作,因爲我認爲Android系統將在某段時間後從應用程序中刪除應用程序或將其保留在內存中的時間更長?我可以依靠android中的這個功能,並期望它能夠一直工作。

我有一個Android項目,客戶要求我有iphone功能,如果我們退出應用程序並再次啓動應用程序,它應該從退出前最後一次打開的屏幕打開。現在,只有使用中心按鈕,纔可以在android中使用。而且,如果用戶退出使用中心按鈕並再次啓動,應用程序應檢查用戶當前位置並執行其他操作。如果啓動應用程序並且用戶導航到任何活動,那麼有任何方法可以使用後退按鈕或中央按鈕來檢查應用程序是否已退出,以便我可以在使用中央按鈕退出應用程序時運行代碼。

感謝

回答

3

當我們在android手機上使用中心或主頁按鈕退出應用程序時,我們可以在android中實現同樣的效果。

HOME按鈕不會「退出應用程序」。

HOME按鈕將主屏幕帶到前臺,就像CAMERA按鈕(如果可用)將攝像頭應用程序帶到前臺,CALL按鈕(如果可用)將撥號程序帶到前臺,點擊Notification可能會帶來一些別的基礎上,Notification前景(如SMS客戶端)等

在Android應用程序,如果通過按下home鍵退出,並通過點擊啓動器圖標的應用程序,從活動開始再次啓動這是最後一次在退出應用程序之前打開的。

號如果您在啓動器圖標,和應用程序的過程挖掘仍然在內存,現有的應用程序實例將被帶到前臺,回到你的任何活動,你已經上。如果您點擊啓動器圖標,並且應用程序的進程已終止以釋放其他應用程序的RAM,則可啓動應用程序的全新副本,並調出用戶使用的任何ACTION_MAIN/CATEGORY_LAUNCHER活動。

將在Android的所有時間的工作,因爲我想將Android系統之後的某個時間刪除存儲的應用程序還是會保留在內存中長?

非前臺應用程序的進程在內存中的時間長度是不確定的,並且將基於設備正在進行的操作以及設備功能(例如RAM的數量)。我建議你閱讀有關process lifecycle的更多信息。

現在,只有使用中心按鈕,纔可以在android中使用這個功能。

「如果我們使用中心按鈕」(Android開發人員稱爲HOME按鈕)是不可能的。它可能會自動發生,但如果應用程序的進程已終止,則不會自動發生。

如果應用程序啓動和用戶導航到任何活動是沒有什麼辦法來檢查,如果應用程序是使用後退按鈕或中心按鈕,這樣,如果應用程序使用中央按鈕退出,我可以運行代碼退出。

您不應該在乎「應用程序是否使用後退按鈕或中央按鈕退出」。

您應該關心您是否擁有您的數據以及該數據的年齡,如果數據過時,請刷新它。

用戶是否通過HOME,BACK,CAMERA,CALL,Notification,最近的任務列表,即將接到的電話,通過將手機粉碎成帶有磐石的碎片並將其替換爲精確副本來離開您的應用程序,或者通過任何其他方式,對你來說應該不重要。

要想比喻一下,請考慮一下Web應用程序。在Web應用程序中,您關心的是您是否擁有會話cookie以及該會話是否陳舊(例如,強制重新登錄)。無論頁面請求是因爲用戶點擊了應用內的鏈接還是點擊了指向您應用的第三方網站的鏈接,或者刷新了他們的頁面,或者使用了書籤來訪問應用中的其他頁面,或者雙擊點擊桌面上的圖標即可啓動您的應用,或右鍵單擊鏈接並打開新的選項卡或其他任何內容,對您而言都無關緊要。

+0

非常感謝您給出解釋性答案。 – anujprashar 2012-03-10 20:57:19

1

回顧了Android活動的生命週期在http://developer.android.com/reference/android/app/Activity.html。如果你什麼都不做,你不能保證你的應用程序從它停止的同一點開始,但是你可以在這裏控制。例如,您可以重載onPause()方法以將您的狀態保存到文件,並使onResume()恢復它。

相關問題