2011-06-29 6 views
69

Hoạt động và bối cảnh có giống nhau hay không?Sự khác biệt giữa Hoạt động và bối cảnh là gì?

Khi nào tôi nên có phương thức vượt qua Hoạt động và khi có bối cảnh?

+0

Vui lòng tìm kiếm StackOverFlow cho câu trả lời trước khi đặt câu hỏi: http://stackoverflow.com/questions/5454332/is-one-activity-one-context – Egor

+0

@Egor Thnx man, và chắc chắn tôi sẽ chăm sóc cho nó .. trước khi đặt câu hỏi .. u có thể giúp tôi trong một câu hỏi nữa .. gốc của mọi hoạt động trong android – Android

+0

xin vui lòng kiểm tra các cuộc thảo luận dưới đây để xóa câu hỏi – Egor

Trả lời

85

Theo như tôi hiểu: Context là đối tượng cơ sở. Vì vậy, mỗi Activity giống như Application có nguồn gốc từ Ngữ cảnh. Điều này có nghĩa là mọi hoạt động và mọi ứng dụng đều là bối cảnh;

Từ developer.android.com

java.lang.Object 
    ↳ android.content.Context 
     ↳ android.content.ContextWrapper 
      ↳ android.view.ContextThemeWrapper 
       ↳ android.app.Activity 

Application

java.lang.Object 
↳ android.content.Context 
    ↳ android.content.ContextWrapper 
     ↳ android.app.Application 

Một bối cảnh Hoạt động kéo dài, miễn là ứng dụng của bạn còn sống, trong khi bối cảnh Hoạt động chết với bạn hoạt động. Vì vậy, nếu bạn cần bối cảnh trên các Hoạt động (ví dụ: trong Singleton), bạn sẽ sử dụng ngữ cảnh Ứng dụng tốt hơn.

thường về phương pháp khung Android nơi một bối cảnh dự kiến ​​nó làm cho không có sự khác biệt nào bạn vượt qua

+0

hu? nếu bạn nhìn vào tài liệu tham khảo, nó rất rõ ràng! Những gì tôi nói có thể không bao gồm đầy đủ câu hỏi, nhưng nó không phải là sai –

+2

tại sao họ chỉ ra ở đây: http://developer.android.com/reference/android/app/Activity.html rằng Hoạt động DERIVES từ android.view.ContextThemeWrapper có nguồn gốc từ \t android.content.ContextWrapper có nguồn gốc từ \t android.content.Context ?? đó là một thông tin sai? –

+2

Có, tôi xin lỗi, tôi đã kiểm tra liên kết, thực sự Ngữ cảnh là một siêu lớp của Hoạt động. Dù sao, không hoàn toàn đúng khi nói rằng Hoạt động là một bối cảnh, Hoạt động là một đối tượng phức tạp hơn, trong khi Ngữ cảnh chỉ là một khối chứa thông tin và cung cấp quyền truy cập vào tài nguyên. – Egor

7

Như Bạn có thể nhìn thấy trên Android doc:

Lớp Hoạt động kéo dài từ "ContextThemeWrapper", và điều này từ "ContextWrapper" và từ "Context".

Vì vậy, có, Một Hoạt động mở rộng ngữ cảnh!