รหัสคำขอจะไม่ถูกส่งไปยังกิจกรรมที่เริ่มต้นโดยอัตโนมัติเนื่องจากไม่ (และไม่ควร) จำเป็นต้องทราบค่านี้ เพียงแค่ต้องรู้ว่าต้องทำอย่างไรและไม่ได้เริ่มต้นจากที่ใด
การเริ่มต้นกิจกรรมเป็นอีกรูปแบบหนึ่งของการเรียกวิธีการ เมื่อคุณเรียกใช้เมธอดคุณจะได้รับผลลัพธ์พร้อมกัน (ตรงนั้นที่คุณโทรออก) ในกรณีนี้คุณจะส่งเฉพาะข้อมูลที่เมธอดต้องใช้ในการทำงานเท่านั้น คุณไม่ได้บอกว่าคุณเรียกมันมาจากไหน
การเริ่มต้นกิจกรรมเป็นอะนาล็อกแบบอะซิงโครนัสของการเรียกเมธอดซึ่งในกรณีนี้คุณจะได้รับผลลัพธ์ในเมธอดพิเศษ onActivityResult () ในวิธีนี้คุณต้องรู้ว่าจะทำอย่างไรกับผลลัพธ์ที่คุณเพิ่งได้รับและคุณมีรหัสคำขอสำหรับสิ่งนี้
เพื่อให้ชัดเจนขึ้นเล็กน้อยว่าเหตุใดจึงไม่ควรส่งรหัสคำขอเป็นพารามิเตอร์ให้พิจารณากิจกรรมตัวอย่างที่แสดงผลิตภัณฑ์ที่คุณสามารถซื้อได้ ในกิจกรรมนี้มีปุ่มสองปุ่มที่ระบุว่า "ซื้อ" และ "เข้าสู่ระบบ" (เนื่องจากคุณยังไม่ได้เข้าสู่ระบบ) การกด "เข้าสู่ระบบ" จะเริ่มกิจกรรมชื่อ "เข้าสู่ระบบ" ซึ่งจะพยายามเข้าสู่ระบบผู้ใช้โดยใช้ข้อมูลที่ให้มา การกด "ซื้อ" ก่อนอื่นจะเริ่มกิจกรรม "เข้าสู่ระบบ" เดียวกันและหากการเข้าสู่ระบบสำเร็จให้เริ่มกิจกรรมซื้อ
ตอนนี้ปุ่ม "เข้าสู่ระบบ" ใช้รหัสคำขอ 1 เพื่อเริ่มกิจกรรมการเข้าสู่ระบบ แต่ปุ่ม "ซื้อ" ไม่สามารถใช้รหัสคำขอเดียวกันได้เนื่องจากจะต้องทำสิ่งที่แตกต่างออกไปหากการเข้าสู่ระบบสำเร็จ ดังนั้นปุ่ม "ซื้อ" จึงใช้รหัสคำขอ 2
ในกิจกรรม "เข้าสู่ระบบ" คุณอาจได้รับรหัสคำขอที่แตกต่างกันสองรหัสขึ้นอยู่กับว่าถูกเรียกมาจากที่ใด แต่คุณจะต้องทำตามขั้นตอนเดียวกัน
ดังนั้นหากคุณส่งรหัสคำขอเป็นพารามิเตอร์คุณจะได้รหัสที่ต้องทำสิ่งเดียวกันสำหรับรหัสคำขอที่แตกต่างกันสองสามรหัสเช่น:
if (requestCode == LOGIN || requestCode == BUY) {
} else ...
นอกจากนี้คุณยังจะต้องจัดเก็บค่าคงที่ของรหัสคำขอในตำแหน่งศูนย์กลางเช่นคลาสชื่อ RequestCodes
ในระยะสั้นควรใช้รหัสคำขอเพื่อตัดสินใจว่าจะทำอย่างไรกับผลลัพธ์ที่ได้รับ ด้วยวิธีนี้คุณจะได้รับโค้ดแบบแยกส่วนมากขึ้นดูแลรักษาง่ายขึ้นและขยายโค้ดได้ง่ายขึ้น