Trước hết, chỉ một hoạt động có thể chạy cùng một lúc trên Android, vì vậy bạn sẽ không bao giờ có hai hoạt động đang chạy cùng một lúc. Sử dụng startActivity()
khi bạn muốn "kích hoạt và quên", nghĩa là bạn muốn khởi chạy một hoạt động nhưng không mong đợi nó trả về giá trị cho hoạt động của bạn. Trong trường hợp đó, hoạt động mới sẽ bắt đầu và hoạt động của bạn sẽ bị tạm dừng; cuối cùng bạn có thể lấy lại quyền kiểm soát khi người dùng quay lại hoạt động của bạn.
Sử dụng startActivityForResult()
khi bạn đang thực hiện kết quả từ hoạt động bạn đang khởi chạy. Trong trường hợp này, hoạt động gọi điện phải ghi đè onActivityResult()
, sẽ được gọi khi hoạt động được khởi chạy thoát và có kết quả trả về cho bạn (mà nó đặt với setResult()
).
Trong cả hai trường hợp, vì hoạt động gọi và hoạt động được gọi là trong cùng một nhiệm vụ , "đồng bộ" theo ý nghĩa nhất định (mặc dù tôi cho rằng sử dụng cụm từ "đồng bộ" và "không đồng bộ" có thể gây nhầm lẫn bối cảnh này). Hoạt động gọi điện sẽ không xuất hiện trên màn hình cho đến khi hoạt động được gọi kết thúc.
Một đọc hữu ích để biết thêm là: * http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html
- Bruno Oliveira (Quan hệ nhà phát triển Android, Google)
Nguồn
2012-01-06 18:38:58
@ Dinesh..Your câu hỏi là giống như [link] http: // stackoverflow .com/questions/8613295/sự khác biệt giữa hoạt động đồng bộ-hoạt động-ans-không đồng bộ [link] và bạn cũng đã trả lời bài đăng này. Vì vậy, tại sao bạn đang yêu cầu cùng một câu hỏi.Moreover AFAIK startSubActivity không bao giờ được phát hành trước công chúng và chức năng của nó được cung cấp bởi startActivityForResult() – Maverick
Cảm ơn Ravi đã bình luận. Tôi trả lời câu hỏi đó nhưng tôi vẫn còn chút bối rối về khái niệm này. Vì vậy, muốn được 100% rõ ràng. Nếu bạn có một số ý tưởng về điều này hơn bạn có thể chia sẻ với tôi ... :) –
"Bất cứ ai có thể giúp tôi giải thích hoạt động đồng bộ và không đồng bộ trong Android." - không có khái niệm như vậy trong Android. – CommonsWare