2009-10-24 184 views
1

我遇到與主鍵有關的問題。當我按home鍵時,當前活動被隱藏,但是當我再次啓動可執行文件時,它會從第一個屏幕開始。我有overidden所有方法(onSaveInstanceState,onPause,onStop onResume)但仍然有問題。處理這個問題的正確方法是什麼?按下主頁按鈕時在android中保存活動狀態

當我按下home鍵,我在數據庫中存儲的部件狀態,當我再次啓動exectable我檢查數據庫狀態和啓動時,用戶按下home鍵所保存的新意圖。這是做這件事的正確方法,因爲當用戶做同樣的事情並且再次按下後退按鈕時,我面臨的問題是,活動堆棧中已經有可用的意圖。

+0

有沒有其他方法可以做到這一點。 – Sam97305421562 2009-10-24 09:31:52

+0

我也有overidden onRestoreInstanceState方法,但它被稱爲當用戶更改orinetation.badly堅持任何幫助表示讚賞。 – Sam97305421562 2009-10-24 09:50:59

+0

這是發生在真實的設備還是仿真器? – 2009-10-26 14:51:58

回答

4

從什麼你描述你可能已經覆蓋安卓launchMode在AndroidManifest.xml中,或者如果你通過測試「運行方式」從Eclipse中嘗試安裝和自動啓動後退出應用程序。然後從模擬器重新開始並測試主頁按鈕行爲。我想這是因爲Android從Eclipse啓動時沒有在OS堆棧上放置活動,然後主頁按鈕行爲不像往常一樣。 如果這不能解決您的問題,請嘗試閱讀http://developer.android.com/guide/topics/fundamentals.html#lmodes

我希望這會有所幫助。

+0

我在我的StartupActivity中設置了launchMode。我刪除了它(它被設置爲「singleTask」,它的行爲就像我想要的;應用程序「恢復」到我期望的活動,即不是StartupActivity,但是MainActivity。 – Ted 2011-10-05 15:50:00

5

我已經爲這個奇怪的行爲奮鬥了一個多月,但我終於找到了試錯的解釋。

這種現象,當你開始從Eclipse中的應用情況,請從命令行或如果你安裝上的打開按鈕(而不是完成按鈕)的應用程序,並按下啓動安裝之後它的應用程序。

如果在這些情形之一的,你開始你的apllication,去活動1,然後到活動2,按Home鍵,然後按應用程序圖標,它會打開活動1的新實例。不要聽我的話。只需按下BACK,就可以看到當您按HOME時您離開的Activity2。

如果以上述方式之一啓動應用程序,似乎啓動程序活動不會放在活動堆棧上,這就是爲什麼它會在應用程序的當前活動之上創建啓動程序活動的新實例疊加。這看起來像一個錯誤。

因此,解決方法是退出應用程序,第一次從Eclipse或命令行或Open按鈕等啓動時,通過按BACK按鈕多次根據需要,然後再次輸入應用程序。從那時起,行爲將如預期的那樣。

+0

這不適用於我......每當我開始應用程序,按HOME,然後再次啓動應用程序,它從LAUNCHER活動開始,而不是從應該關注的活動。 – Ted 2011-10-05 15:47:22

+0

已解決。請參閱上面的註釋。 – Ted 2011-10-05 15:50:24

+0

以下是此問題的解決方法:http://stackoverflow.com/questions/3042420/home-key-press-behavior/4782423#4782423 – 2011-10-14 11:35:51

相關問題