簡體   English   中英

onActivityResult Android

[英]onActivityResult Android

我是android的新手,並有以下查詢。

我正在構建一個應用程序,它包含第一個和第二個活動,它們相互發送消息。 'first'向'second'發送消息然后'second'開始,顯示收到的消息並將消息發送回'first'。 最后,首先顯示收到的消息。

在第一個活動中,我必須使用startActivityForResult啟動第二個活動,因為我需要回復。

問題 - 當覆蓋onActivityResult時,我們為什么要檢查是否(resultCode == RESULT_OK)

根據android網站 -

onActivityResult是“當您啟動的活動退出時調用,為您提供啟動它的requestCode,返回的resultCode以及來自它的任何其他數據。”

因此,如果我在“第二個活動”中將ResultCode設置為Result_OK,為什么我必須在'first'活動中檢查resultCode。 當'second'設置resultCode並退出時,是否調用onActivityResult?

謝謝 !

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

您的活動可能會以兩種方式退出,首先是您輸入消息時聽起來“正常”,並且可能會按下一些“完成”按鈕來完成它。 這樣您就可以將結果設置為OK。

用戶可以按下后退按鈕的第二種方式,因此您的活動結束而不捕獲用戶輸入,因此您的onActivityResult可能什么也得不到。 這樣,您就會獲得空指針異常,您知道用戶在沒有輸入正確輸入的情況下退出了活動2。

希望您了解為什么ResultCode在這種情況下很重要。

當您處於第二個活動並按后退鍵時,第二個活動將完成,結果代碼將不會是“確定”。 所以需要ResultCode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM