我有一個A類,它通過startActivityForResult
向其傳遞Intent
來運行活動。在其他班級,讓我說B我得到這個Intent
並通過它重新創建活動。我該如何收聽該活動的活動,例如爲結果啓動的活動正在運行,並且用戶按下「返回」按鈕,因此我想要執行一些操作。 我該怎麼做? 先謝謝您。如何將onBackButton偵聽器設置爲活動
我重新創建對象實例的活動不是從Activity類派生的。這只是活動。所以我只反對。有沒有辦法用類的實例做類似的東西,但不是類?
我有一個A類,它通過startActivityForResult
向其傳遞Intent
來運行活動。在其他班級,讓我說B我得到這個Intent
並通過它重新創建活動。我該如何收聽該活動的活動,例如爲結果啓動的活動正在運行,並且用戶按下「返回」按鈕,因此我想要執行一些操作。 我該怎麼做? 先謝謝您。如何將onBackButton偵聽器設置爲活動
我重新創建對象實例的活動不是從Activity類派生的。這只是活動。所以我只反對。有沒有辦法用類的實例做類似的東西,但不是類?
你應該覆蓋與條件
setResult(result); //if you want to pass a result to activity A
finish();
某處方法:Activity
類的onBackPressed()
。
您可以覆蓋onDestroy
並將代碼放在那裏。
另一種可能性(可能更適合您的需求)是覆蓋onBackPressed
。
活動中,要採取行動「返回」按鈕,只需覆蓋onKeyDown
(或onKeyUp
)方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//do whatever you need for the hardware 'back' button
return true;
}
return super.onKeyDown(keyCode, event);
}
請記住,如果你想「後退」鍵仍然結束您的活動,那麼你就需要包括前return true;
如果活動正在被銷燬,例如由於內存不足,系統會不會調用它?我不確定這是什麼OP後。 – 2012-04-03 14:40:51
你有一個觀點,儘管我認爲一般情況下最好遵循活動生命週期,不要拘泥於鍵。 – MByD 2012-04-03 14:43:28
那麼,這取決於要求是什麼。在我的一個應用程序中,我有一個活動,其視圖基於用戶操作而改變。當按下「後退」鍵時,我要麼恢復原始狀態(如果我處於更改狀態)或完成活動。在這種情況下,生命週期不會幫助我。 – 2012-04-03 14:45:17