Hoạt động và Ngữ cảnh có giống nhau không hay có sự khác biệt?
Khi nào tôi nên có một phương thức chuyển một Hoạt động và khi một Ngữ cảnh?
Hoạt động và Ngữ cảnh có giống nhau không hay có sự khác biệt?
Khi nào tôi nên có một phương thức chuyển một Hoạt động và khi một Ngữ cảnh?
Câu trả lời:
Theo như tôi hiểu:
Ngữ cảnh là Đối tượng Cơ sở. Vì vậy mọi Hoạt động giống như Ứng dụng đều bắt nguồn từ Ngữ cảnh. Điều này có nghĩa là mọi Hoạt động và mọi Application
IS a Context
;
Từ developer.android.com
hoạt động
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.view.ContextThemeWrapper
↳ android.app.Activity
Và ứng dụng
java.lang.Object
↳ android.content.Context
↳ android.content.ContextWrapper
↳ android.app.Application
Bối cảnh Ứng dụng tồn tại, miễn là ứng dụng của bạn còn sống, trong khi ngữ cảnh Hoạt động chết với Hoạt động của bạn (nó không hợp lệ sau onDestroy
Hoạt động đó).
Vì vậy, nếu bạn cần Ngữ cảnh trên các Hoạt động (tức là trong một Singleton), bạn sẽ tốt hơn khi sử dụng Ngữ cảnh Ứng dụng.
Thông thường trên các phương pháp của Android Framework trong đó ngữ cảnh được mong đợi, không có sự khác biệt nào bạn vượt qua. Nhưng hãy luôn lưu ý đến MemoryLeaks nếu bạn đang giữ các Tham chiếu lâu dài đến một bối cảnh
Như Bạn có thể thấy trên tài liệu Android :
Lớp Activity mở rộng từ "ContextThemeWrapper" và lớp này từ "ContextWrapper" và lớp đó từ "Context".
Vì vậy, có, một Hoạt động mở rộng Ngữ cảnh!