A1,A2,A3 và A4 là các hoạt động được gọi bằng cách sử dụng ý định. Sau đó, A1- A2A4--A3.A2 gọi A4 với cờ ý định FLAG_ACTIVITY_CLEAR_TOP. Khi phương thức finish() được gọi trên A3, kết quả sẽ là gì hoạt động đang chạy hiện tại?
Đáp án đúng: A
Khi A2 gọi A4 với cờ FLAG_ACTIVITY_CLEAR_TOP
, nó sẽ tìm một thể hiện hiện có của A4 trong ngăn xếp nhiệm vụ hiện tại. Nếu tìm thấy, nó sẽ xóa tất cả các hoạt động phía trên A4 trong ngăn xếp và khởi chạy lại A4. Trong trường hợp này, ngăn xếp hoạt động sẽ trở thành A1 -> A2 -> A4. Khi phương thức finish()
được gọi trên A3 (hoạt động này đã bị xóa khỏi ngăn xếp do FLAG_ACTIVITY_CLEAR_TOP), không có A3 nào để kết thúc. Hoạt động hiện tại là A4, không có hoạt động nào kết thúc nên hoạt động đang chạy hiện tại vẫn là A4. Do đó, đáp án đúng là A4.