Có thể biết nếu một số hoạt động đã được gọi cho kết quả, đang sử dụng startActivityForResult()
hay chỉ được bắt đầu sử dụng startActivity()
?
Tôi cần kiểm soát điều này, nếu nó được gọi cho kết quả thì hành vi sẽ khác.
Câu trả lời:
Khi hoạt động của bạn được bắt đầu chỉ bằng startActivity()
một getCallingActivity()
phương pháp trong hoạt động mục tiêu sẽ trở lại null
.
Khi nó được gọi bởi startActivityForResult()
nó sẽ trả về tên của hoạt động gọi.
Xem Tài liệu cho getCallingActivity()
:
Trả lại tên của hoạt động đã gọi hoạt động này. Đây là người mà dữ liệu trong
setResult()
sẽ được gửi đến. Bạn có thể sử dụng thông tin này để xác nhận rằng người nhận được phép nhận dữ liệu.Lưu ý: nếu hoạt động gọi không mong đợi kết quả (nghĩa là nó không sử dụng
startActivityForResult(Intent, int)
biểu mẫu bao gồm mã yêu cầu), thì gói gọi sẽ rỗng.Lợi nhuận
Tên thành phần của hoạt động sẽ nhận được câu trả lời của bạn hoặc null nếu không có.
getActivity().startActivityFor…
từ một phân mảnh mà bạn phải thực hiện startActivityForResult
trực tiếp.