2012-01-06 68 views
12

Có ai có thể giúp tôi hiểu đồng bộkhông đồng bộ hoạt động trong Android không?Hoạt động đồng bộ và không đồng bộ

Ý nghĩa chính xác của hoạt động đồng bộ và không đồng bộ trong Android là gì?

StartActivity, StartSubActivityStartAcivityForResult bắt đầu một hoạt động đồng bộ hoặc không đồng bộ hoặc họ có thể hoạt động theo cả hai cách không?

Vui lòng giải thích là tôi đã trải qua nhiều bài viết nhưng không thể tìm thấy bất kỳ giải thích thích hợp nào về điều này.

+0

@ 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

+0

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 ... :) –

+1

"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

Trả lời

17

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)

+1

Cảm ơn Bruno đã trả lời nhanh. Nhưng chỉ có thể giải thích cho tôi về ý nghĩa "đồng bộ" và "không đồng bộ" được sử dụng như tôi đã thấy ở nhiều nơi, loại câu hỏi này phát sinh .... –

+3

Đồng nghĩa với việc thực thi sẽ không tiếp tục cho đến khi một công việc nào đó được hoàn thành . Nếu 'startActivity' hoạt động theo cách này, tất cả giao diện sẽ đóng băng cho đến khi hoạt động khác đang chạy.Không đồng bộ có nghĩa là nhiệm vụ của bạn sẽ diễn ra ở một nơi nào đó trong tương lai và thực hiện tiếp tục trong khi đó: bạn yêu cầu một Activity được bắt đầu và mã của bạn tiếp tục thực thi khi biết rằng nó sẽ xảy ra. – slezica

+1

Câu trả lời không giải quyết đúng câu hỏi. –

Các vấn đề liên quan