2011-06-15 130 views
1

我使用finish()進行活動和使用back按鈕的鍵盤很困惑。我已經創建了許多活動,所以從一個活動移動到另一個我完成了最後的活動。並且我還在我的活動中使用了後退按鈕,因此我可以通過按下返回按鈕返回(從我來的地方) ,但是當我使用鍵盤的後退按鈕時出現問題我轉到任何其他活動。我希望它應該作爲我的活動返回鍵。問題在活動完成()和在按下back按鈕在android

我認爲這可以通過使用onKeyListener和chekcing鍵盤的後退按鈕來完成,並且在那裏我開始與我的活動後退按鈕相同的活動。 我想知道這樣做是對的還是有比這更好的方法?

請幫助

回答

4

有一個更好的辦法:

從一個活動到另一個時,你應該不叫finish()。如果需要內存,操作系統會爲您清除它,當您按回時它將根據需要運行。只要確保你的生命週期函數是正確的(當你鬆散焦點等時你清理了大量內存佔用的東西),你將會是一個更快樂的編碼器。

2

您可以覆蓋活動的onBackPressed方法以覆蓋默認行爲(即爲您的活動調用finish())。

但是,您應該在常規基礎上質疑您的總體設計。請查看Tasks and Back Stack的文檔,瞭解其他控制Android activity lifecycle效果更好的用戶體驗的方法。

1

儘量不要使用完成(),iF你想要免費的內存然後不要擔心os會做的情況下內存需要和後退按鈕將工作。

我希望你知道活動的生命週期。每當你按下後退按鈕,其他活動停止

+3

你的CapsLock似乎被打破...... – Nanne 2011-06-15 08:56:18

+0

你是絕對正確的。 Shift鍵卡住了..現在它好:) – Stuti 2011-06-15 10:50:36

1

如果你想呼叫finish(),並希望您的設備後退按鈕作爲活動後退按鈕,然後覆蓋onBackPressed()方法。

假設你在活動2,然後,想在活動1這是你的第一個actvity然後裏面Activity2.java下面寫代碼來支持....

public void onBackPressed() 
    { 
     Intent setIntent = new Intent(this,Activity1.class); 
     startActivity(setIntent); 
     return; 
    } 
相關問題