2011-09-22 175 views
-1

我有一個應用程序,它在狀態欄中顯示一條通知,讓用戶點擊以恢復到活動中。在Android中殺死應用程序

在應用程序中,我也將運行在接近應用程序按鈕:

android.os.Process.killProcess(android.os.Process.myPid()); 

當我點擊關閉按鈕的應用程序,該應用程序將得到只要殺了,因爲我沒有通過進入應用程序點擊通知。

如果我通過點擊應用程序進入應用程序,應用程序將「閃爍」一秒鐘,並顯示一個新副本。我想一個新的副本顯示。

是否有人碰巧知道這是什麼原因造成的?

+0

爲什麼你要殺應用程序呢?通常沒有必要。 –

+0

@Philipp Reichart是的,我知道android系統會在內存耗盡時殺死它。但我試圖爲用戶提供一個選項。 –

+0

您是否嘗試過從「Activity」中調用['finish()'](http://developer.android.com/reference/android/app/Activity.html#finish())? –

回答

4

你不殺死Android的應用程序,它不是事情的方式。用戶導航離開,系統清理什麼時候需要。當手機已經有主頁和後退按鈕時,爲什麼需要「關閉」按鈕?

1

殺死您的應用程序的過程是一件可怕的事情。根據你的應用程序在做什麼,你可能會因爲你突然殺死的東西而導致一些資源沒有正確清理。沒有理由在android上執行此操作。如果沒有您的幫助,Android會更好地管理資源/電池壽命。

如果你真的想添加一個關閉按鈕,最好的辦法是讓用戶回到他們的主屏幕。

-2

你試過system.exit(0);在的onDestroy()調用完成(),當用戶選擇「關閉」按鈕後,..

即使不建議

0

你說

@Philipp Reichart我試圖取代 android.os.Process.killProcess(android.os.Process.myPid());與 完成()但它沒有工作。應用程序沒有被殺死

我和我的一個應用程序有類似的情況,並且finish()沒有工作,所以我簡單地使用了.killProcess直到我可以找出這些bug。但這不應該是一個永久的解決方案。

我的問題是線程。確保完成所有線程處理完畢後(關閉IO流,數據庫引用,遊標等)。一旦我這樣做了,沒有理由.killProcess完成()完成了這項工作。

另外Android系統內置了「後退」按鈕退出和「家」按鈕「最小化」(保持應用程序在內存中)。應用程序不需要「退出」按鈕,因爲它已經在那裏,這給你更多的屏幕房地產:)。