2013-05-18 43 views
0

我是新來的android和有以下查詢。onActivityResult Android

我正在構建一個應用程序,其中包含兩個活動的第一個和第二個互相發送消息。 '第一'發送消息到'秒'然後'秒'開始,顯示接收到的消息並將消息發送回'第一'。最後首先顯示收到的消息。

在第一個活動中,我必須使用startActivityForResult啓動第二個活動,因爲我需要響應回來。

問題 - 重寫onActivityResult的時候,爲什麼我們要檢查如果(resultCode爲== RESULT_OK)

根據android的網站 -

onActivityResult是「叫當一個活動,你推出的退出,給你開始使用的requestCode,返回的resultCode以及它返回的任何附加數據。 「

所以,如果我在'第二個活動'中將ResultCode設置爲Result_OK,爲什麼我必須檢查resultCode 「冷杉t'活動。 ?當'second'設置resultCode並退出時調用Isa onActivityResult?

謝謝!

PS - 我試着刪除語句 - if(resultCode == RESULT_OK)。我得到一個NullPointerException。

回答

1

您的活動可能以兩種方式退出,首先聽到您輸入信息的「正常」,然後按一下「完成」按鈕即可完成。這樣你就可以將結果設置爲OK。

還有第二種方式,用戶可以按下後退按鈕,因此您的活動結束時不捕獲用戶輸入,因此您的onActivityResult可能不會收到任何內容。這樣你就可以得到你的空指針異常,你知道用戶在沒有輸入正確輸入的情況下退出了活動2。

希望你明白爲什麼ResultCode在這種情況下很重要。

1

當您處於第二個活動狀態並按下後退鍵時,第二個活動將完成,結果代碼將不會「OK」。所以需要ResultCode。