2010-08-06 71 views
3

我開發了一個工作正常的應用程序。銷燬Android應用程序

因爲我已經使用了一些靜態變量,並且還設置了應用程序級變量。 我的問題是,即使在每個活動設置完成()後,應用程序在運行模式下都會顯示。

關閉應用程序後,當我在某個時間後啓動應用程序時,它將設置最後的更改。

我該如何銷燬我的應用程序?

回答

3

我檢查了應用程序不釋放資源。 所以,我所做的是:

Process.killProcess(Process.myPid()); 

它會殺死應用程序。 它可以幫助我很多。

+1

如果你必須這樣做,那麼你可能做錯了 – Falmarri 2010-08-06 17:51:16

+0

是的..你是對的..但我不明白什麼是確切的問題。 – 2010-08-07 04:26:18

+0

.myPid()是什麼? – Dimitri 2012-12-24 08:10:13

0

我希望你已經爲你的活動調用了onDestroy。其次,你是否在其他地方保存你的偏好?

+0

是的,我已經打電話onDestroy以及我已經完成了活動。 – 2010-08-06 08:53:56

+0

onDestroy會破壞活動而不是應用程序 – 2010-08-06 09:38:40

+1

我很困惑。你應該*永遠*調用onDestroy()?我認爲這是由系統專門調用的。 – 2010-08-06 15:33:29

12

我認爲正確的答案是「你不應該」。

無論您的應用程序在用戶停止使用後是否仍在運行都無所謂。如果需要,Android會殺死它。

你的應用程序很可能不應該有退出按鈕。

0

請通過用於破壞活動

的setResult()完成()和onActivityresult()

這些方法要完成調用的setResult()調用完成()的活動後&然後在它的父級活動覆蓋onActivityResult()在這個你可以完成你的應用程序。

oli給出的解決方案是正確的android會破壞你的應用程序運行。但是我想補充一下,只有當它缺乏系統資源時。

如需更多幫助,請通過以下鏈接。

http://developer.android.com/reference/android/app/Activity.html

+1

我懷疑Nishant的問題是他將數據全局存儲到應用程序中(可能在Activity中是一個靜態值),而不是在活動實例中。即使在每個活動的每個實例都消失之後,這些數據仍然會持續存在,並且只會在系統終止整個過程後纔會釋放。 (我用(錯誤地)使用這種技術來持續跨越方向變化大的數據集。) 正確的解決方案是無法做到這一點。 – 2010-08-06 15:37:50

+0

嘿,愛德華,我用這個鏈接來存儲全球價值觀:http://stackoverflow.com/questions/708012/android-how-to-declare-global-variables。 我有一些靜態的int和字符串變量。 – 2010-08-07 04:30:57

3

呼叫

System.exit(0); 

從內

OnDestroy() 

是的,你不應該。

相關問題