Tôi có 3 hoạt động - Một, B và C.Hoạt động bắt đầu với startActivityForResult() không trở về gọi Hoạt động
Tóm lại, Hoạt động A bắt đầu Hoạt động B, sau đó A cũng khởi động Hoạt động C và mong đợi kết quả từ C, nhưng không bao giờ nhận được kết quả đó.
Đây là công việc ứng dụng:
Hoạt động A được đưa ra khi khởi động ứng dụng và bắt đầu Hoạt động B (không cho kết quả, chỉ cần startActivity()) trong onCreate.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startActivity(new Intent(getApplicationContext(), ActivityB.class)); }
Hoạt động A sau đó cũng bắt đầu Hoạt động C sau trong mã, lần này cho kết quả sử dụng startActivityForResult(), và Hoạt động A cũng có onActivityResult.
Intent intent = new Intent(getApplicationContext(), ActivityC.class); startActivityForResult(intent, 0);
và
protected void onActivityResult(int requestCode, int resultCode, Intent data) { ... }
Hoạt động C sử dụng setResult() và kết thúc() để trở về một số dữ liệu, mà nên trở về Hoạt động A, vì Hoạt động Một gọi startActivityForResult().
Intent intent = new Intent(); intent.putExtra("encryption", encryption); setResult(56, intent); finish();
NHƯNG workflow rơi im lặng ở bước 3 - Hoạt động của một onActivityResult không bao giờ được gọi là (không phải là B cho rằng vấn đề), mặc dù Hoạt động A là một bắt đầu từ C cho kết quả. Không chắc liệu Hoạt động B có cản trở giao tiếp của A và C hay vấn đề có thể xảy ra hay không. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.
của nó rất khó hiểu .... Hoạt động B sau đó sử dụng Hoạt động A để thực hiện cuộc gọi dịch vụ web và nếu Hoạt động A xác định thông tin đăng nhập là cần thiết, nó sẽ bắt đầu Hoạt động C –
Câu hỏi đã chỉnh sửa để đơn giản hóa nó. Về cơ bản Hoạt động A bắt đầu Hoạt động B, sau đó A cũng bắt đầu Hoạt động C và muốn có kết quả từ C, nhưng không bao giờ nhận được nó. – Gady
startActivityforresult đi vào hoạt động B hoạt động của nó từ hoạt động mà bạn bắt đầu và quay trở lại onactivityresult –