2012-10-01 56 views
-2

當用戶回家時,有沒有某種方式可以「殺死」我的應用,點擊圖標後不會在按住家後關閉應用或關閉屏幕。我必須在eclipse中重新運行應用程序才能讓它出現。「回家」後Android應用不會重新打開

+2

不,你需要實現onResume()和onRestart():)當你的應用程序離開焦點(瞄準)時,殺死你的應用程序不是推薦的android方式。但是,可以隨時在onPause()或onStop()方法中調用System.exit(0)。 – Shark

+0

我很抱歉,這個問題被標記下來,我做了研究。這個問題超出了原來的範圍。該應用只能在我的設備上通過點擊Eclipse中的運行來打開,即使在剛剛重新啓動的設備上,該圖標也不會執行任何操作。 – dmattox10

+0

您可以使用android構建系統而不是Eclipse來構建您的應用程序嗎? – Shark

回答

2

你不應該這樣做的onDestroy()方法使用finish()方法。而是實現onStart和onResume。請閱讀thread瞭解更多信息。

+0

哇,我很抱歉。我實施了onStart和onResume。在我的筆記本電腦崩潰並恢復了備份之後,我沒有意識到備份處於我實施之前的狀態。我做了我的研究,我只是沒有閱讀我自己的代碼... – dmattox10

0

嘗試這兩種方式.....

-使用System.exit(0)ActivityonDestroy()方法。

-你可以的Activity

+1

Android不保證您的onDestroy()將被調用。如果你真的想這樣做,請在onPause()中使用finish()。 – Shark

+0

如果應用程序進入「停止」狀態,那麼它會進入「重新啓動」或「銷燬」狀態..... –

0

目前還不清楚你想要做什麼,或者出了什麼問題。一般來說,當用戶回家並返回到您的應用程序時,應該沒有問題恢復或重新啓動您的應用程序。

當onCreate()被一個非null參數調用時,你的代碼是否會崩潰?

一般情況下,你的代碼流程應該是:

的onCreate(捆綁savedstate):如果savedstate爲空,你的活動是白手起家。如果非空,則在之前被殺死後重新啓動。已保存的狀態包應包含足夠的信息,以便您的活動可以從停止的位置獲取。

onStart():活動即將出現在屏幕上。我傾向於不打擾執行這個。

onResume():活動即將開始接受來自用戶的輸入。這是啓用gps,傳感器,後臺線程或其他可能消耗資源的好時機。如果以上都不適用,那麼我不打算實現這一點。

onSaveInstanceState(savedstate):您的活動可能會消失,並且很快就會死亡。您必須將足夠的信息保存到savedstate軟件包中,以便稍後重新啓動您的應用程序。

onPause():您的活動即將變爲非活動狀態。現在是關閉onResume()中開始的任何事情的時候了。 重要:這可能是您的應用程序被殺前的最後一次呼叫,所以現在是保存任何用戶首選項或其他長期狀態的時間。

onStop():您的活動將在屏幕外。不能保證這將實際上被調用。出於這個原因,我很少執行此操作。

onDestroy():您的活動即將離開。關閉你在onCreate()中開始的任何東西。不能保證這將實際上被調用。

相關問題