題:
在Android中關閉應用程序的正確方法是什麼?
Daniel Magliola
2010-08-28 20:56:57 UTC
view on stackexchange narkive permalink

我是Android平台的新手,這可能是一個愚蠢的問題,但是...

如何關閉應用程序?

當我進入時一個應用程序,但我想離開,我只是單擊“主頁”並繼續前進,但是我剛剛安裝了任務管理器應用程序,並且發現一切仍在運行。

p>是否可以退出應用?還是我每次退出時都需要使用任務管理器?
另請參閱:[如何停止應用程序和服務的運行?](http://android.stackexchange.com/q/30332/1465)
六 答案:
#1
+47
schwiz
2010-08-30 01:38:18 UTC
view on stackexchange narkive permalink

如果使用 BACK kbd>按鈕退出應用程序,則它將在當前活動上調用 onDestroy(),如果您按 HOME kbd>儘管只調用 onPause()
,但不要太擔心,Activity不會耗盡電池,它們只是留在內存中,因此以後可以更快地打開它們。

我不建議使用其中一種任務殺手應用程序,而Android旨在將這些內容保留在內存中是有原因的,使用任務殺手只是一項額外的服務,需要消耗大量電量。您需要注意的是在後台運行服務(例如Twitter或電子郵件客戶端拉服務器)的應用程序,任何具有此類服務的優質應用程序都可以將其關閉。

我注意到幾個應用程序在這種暫停狀態下會消耗大量電池。即,最新版本的Google Maps和一款名為GalaxIR的遊戲。因此,請留意那些不好的違規者,並確保適當地將其關閉。
如果您誤食了麵糊服務是後台服務,那您就錯了。
確實有可能開發的應用程序開發得不好,並且沒有遵循Android應用程序的生命週期。例如,即使在線程被操作系統暫停後(通過按Home鍵),線程也可以在活動中保持活動狀態,在這種情況下,應用將繼續使用電池。
我不會在手機上安裝任何類似的東西:-)
@schwiz您確定“後退”按鈕將調用onDestroy()嗎?我沒有註意到[活動生命週期](http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)中提到的這一點。 AFAIK的“後退”按鈕確實從堆棧中彈出“活動”視圖。您能給我們參考一下嗎?
@Flow只是做了一個簡單的活動,該活動在調用onDestroy時打印到控制台,您將看到後退按鈕破壞了該活動。
@schwiz是的,在[此處](http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html)中對此進行了記錄。也許您想將此作為鏈接添加到您的答案中。
我發現當我按下“後退”按鈕時,許多應用程序都沒有退出。例如:Pandora,G
(我的編輯時間已過期)...。其他無法在“後退”按鈕上關閉的應用程序:Pandora(按Back後甚至可以繼續播放),Google Play商店,FaceBook,Podkicker。我正在測試的方法是單擊“後退”按鈕,直到應用程序消失(通常使我回到首頁),然後運行Easy Task Killer。
#2
+25
GAThrawn
2010-08-29 20:31:03 UTC
view on stackexchange narkive permalink

我很確定我所讀過的所有內容都表明後退 kbd>按鈕是退出應用程序的正確方法。

Home ,讓它們在後台運行,直到Android決定不再需要它們為止。如果您只需要在應用之間切換以進行檢查,這會很方便(按住Home鍵幾秒鐘會提供最近的列表正在運行的應用程序,您可以在大多數手機上切換回該模式),但使用“後退”按鈕顯示該應用程序時,您希望它關閉。

按住“主頁”按鈕只會列出最近打開的6個應用程序,而不是正在運行的應用程序。
@Loïc:它為我顯示8。
@LoicWolff, AlEverett取決於所使用的啟動器和ROM本身。
這不是真的。活動不會在Android上在後台運行。
#3
+11
ale
2010-08-28 22:55:16 UTC
view on stackexchange narkive permalink

某些應用程序的菜單中具有“退出”選項。多數不需要。

您真的不需要為此擔心。您可以直接轉到接下來需要的任何應用程序。 Android在需要時可以很好地釋放資源。

更新 AndroidSpin進行了一些實際研究

好的鏈接,你:)
#4
+7
Dan Hulme
2013-11-29 16:54:11 UTC
view on stackexchange narkive permalink

活動不在後台運行

在Android中,活動(即您可以看到的應用程序的一部分)永遠不會在後台運行。它們只能在屏幕上運行(並使用電池電源)。無論您使用 home 還是 back 離開該活動,該活動都會停止運行。唯一的區別是Android要求應用程序保存哪些數據,因此這兩個選項都不是“正確的方法”。

Home

如果您使用 home ,Android會將應用保持為相同狀態,因此,如果您使用稍後再返回(例如通過最近的應用程序列表),它仍將保持您離開狀態的狀態:在同一屏幕上,顯示相同的內容。例如,如果這是一個電子郵件應用程序,並且您正在查看一封電子郵件,那麼它將記住那封電子郵件,並向您顯示相同的電子郵件。

最終(大約半小時後), Android得出的結論是您不會返回該應用程序,因此它將重置此狀態:下次啟動該應用程序時,它將從前/主屏幕開始。要繼續該示例,電子郵件應用程序將忘記您正在查看的電子郵件和文件夾,並向您顯示收件箱。

返回

如果您使用返回,您是在告訴Android您不想回到該視圖。它將立即破壞有關您正在查看內容的信息。下次啟動應用程序時,它將顯示前屏幕(例如收件箱)。

正如其他人所說,應用程序可以控制 back 按鈕的行為:例如,Web瀏覽器使用它來返回瀏覽器歷史記錄。我所描述的是後退按鈕的默認行為,敦促開發人員保持這種行為以避免混淆。

緩存的後台進程

無論使用哪種方法,Android都會將應用程序盡可能長時間地保留在內存中(但不會運行)。這將更加有效。當您返回應用程序時,如果它仍在內存中,則Android可以立即再次運行它。如果它還沒有存儲在內存中,則Android必須花費時間和精力從存儲中再次加載應用。

在舊的Android版本中,以這種方式在後台保留在內存中的應用已包含在列表中“正在運行的應用程序”。對於用戶來說,這有點令人困惑-它使人們認為該應用程序確實仍在運行-因此,較新的版本將這些應用程序稱為“緩存的後台進程”,以明確它們僅在緩存中而不在運行。

後台應用程序如何?

之前,我說過活動不是在後台運行的。那麼您的電子郵件客戶端如何檢查郵件?除了活動外,應用還可以具有服務。服務沒有供您查看或與之交互的GUI,但它們確實在後台運行。通常,服務只會很少運行,例如每小時檢查一次郵件,但是應用程序開發人員可能會一直運行該服務,從而耗盡電池電量。

使用 back home 不會更改Android如何處理同一應用程序中的任何服務:該服務可以繼續運行,也可以在給定時間稍後觸發(下次檢查郵件)

摘要

總而言之,使用 back 還是 home 都沒有關係:僅更改應用在下次運行時向您顯示的內容。它對電池使用沒有影響。它們都不對應於在計算機上“退出”程序。

我很高興有人報導了這個!我是一名開發人員,但是我曾經為Verizon Wireless工作,當您不需要時,我無法告訴您有多少人對此感到擔憂。
#5
+3
jmbouffard
2011-02-04 19:08:43 UTC
view on stackexchange narkive permalink

在Android中,永遠不需要關閉應用程序,並且OS會在需要其他資源時清理所有剩餘應用程序的內存。使用任務殺手只會破壞操作系統的正常運行,甚至可能減慢設備的速度,因為始終必須從頭開始重新加載應用程序。

Android應用程序生命週期的運行方式不在頂部的應用程序處於暫停狀態,不再使用任何cpu;如果再次打開應用程序,則僅保留內存內容;

這就是說,應用程序開發人員在創建應用程序時有責任遵循應用程序的生命週期,以免發生某些錯誤或錯誤,從而導致應用程序永遠不會停止或暫停。如果遇到此類應用程序並關閉該應用程序,可以通過在應用程序上選擇“強制停止”,通過“設置”->“應用程序”->“管理應用程序”進行操作。

但是我會真的不建議使用設備上不斷運行的任務殺手。

#6
+1
noob
2013-01-20 20:57:29 UTC
view on stackexchange narkive permalink

僅想添加schwiz的答案,即只需幾行代碼即可覆蓋後退按鈕的功能。因此關閉應用程序並不總是可靠的。因此,如果應用程序開發人員不想在按“後退”按鈕時關閉該應用程序,則它不會關閉。

儘管大多數優秀的應用程序開發人員在按下應用程序主菜單上的後退按鈕時都會彈出一個警告對話框,詢問用戶是否打算退出該應用程序,如果您單擊退出,它會關閉該應用程序。

正確的答案可能是,關閉應用程序完全取決於應用程序開發人員,如果他們希望在按下主屏幕按鈕時關閉應用程序,則將退出代碼放入 onPause()。如果希望將其放在後退按鈕上,則將其放在 onBackKeyPressed 中。因此,它並不是真正掌握在用戶手中。

用戶可以在不需要時避免使用未提供適當關閉功能的應用。任務管理器不是關閉應用程序的好方法,因為它可能會使應用程序崩潰並且無法給他們提供保存狀態的機會。

操作系統會在必要時關閉應用程序,因此您不必擔心太多。

編輯:
有一個銷毀選項。離開應用程序後即單擊主鍵時。您可以轉到設置-> 開發人員選項-> 不要保留活動。儘管它是開發人員選項,但是如果您過於擔心後台運行的應用程序,則可以使用此選項。但是請記住,不建議非開發人員使用它。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...