Context la gi
Show Đã đăng vào thg 5 26, 2017 2:21 SA 4 phút đọc Context là gì?Context có thể được dịch là ngữ cảnh, nó thể hiện cho ngữ cảnh hiện tại của ứng dụng, đối tượng. Ví dụ như đang ở ngữ cảnh Activity, Service...Context cho phép bạn tạo ra những đối tượng mới mà có liên quan đến một ngữ cảnh cụ thể nào đó. Thông thường bạn gọi nó để lấy thông tin có liên quan đến một phần của phần mềm của bạn (Activity, package, application) Ngoài ra Context dùng để xử lí công việc liên quan đến hệ thống, nó cung cấp các dịch vụ như resource, truy cập database, preferences và nhiều thứ khác nữa. Ứng dụng Android có các activity , chúng được kế thừa từ Context, nên cũng có thể truy cập được resource, class và các thông tin liên quan đến ứng dụng. Context bạn có thể thấy được sử dụng mọi nơi trong ứng dụng Android và nó rất quan trọng trong phát triển Android, bắt buộc chúng ta phải có hiểu biết về chúng để có thể sử dụng một cách chính xác. Nếu sử dụng sai cách thì có thể khiến cho ứng dụng của bạn bị leak memory. Có rất nhiều kiểu Context vậy đó là những kiểu nào, và cách sử dụng chúng như thế nào. Hãy cũng theo dõi nhưng gì tôi sắp viết dưới đây nhé! Application ContextApplication Context là một singleton, bạn có thể truy cập nó trong activity thông qua getApplicationContext(). Context này gắn liền với vòng đời của ứng dụng. Application Context được sử dụng khi bạn cần context cho những công việc tách biệt với ngữ cảnh hiện tại hay context không bị phụ thuộc vào phạm vi activity
Ở ví dụ trên, nếu bạn truyền vào Activity Context thì nó sẽ khiến ứng dụng của bạn bị leak memory vì Context activity nó sẽ giữ tham chiếu đến activity nên khi activity không sử dụng sẽ không được thu hồi lại bộ nhớ. Ngoài ra nếu bạn sử dụng thư viện ngoài, khi khởi tạo bạn phải truyền Application Context thay vì Activity Context. Bạn chỉ được phép sử dụng getApplicationContext() khi bạn biết Context cho việc gì mà có thể cần đến việc sử dụng lâu. Activity ContextLoại context này ở trong Activity và nó cũng gắn liền với vòng đời của Activity, nên sử dụng loại context này khi bạn truyền nó sử dụng trong phạm vi activity hoặc bạn cần context cho công việc mà gắn liền với vòng đời hiện tại của activity
getContext() trong ContentProviderContext ở đây chính là Application Context nên việc sử dụng nó tương tự với Application Context. Context này được gọi qua hàm getContext() Ta không nên sử dụng getApplicationContext() khi nào?
Tóm lạiPhần lớn,bạn thường sử dụng những context sẵn có từ những thành phần bạn đang làm việc bên trong. Bạn có thể giữ một tham chiếu một cách an toàn miễn là nó không vượt quá phạm vi của thành phần đó. Nếu bạn muốn lưu một tham chiếu của một đối tượng vượt qua ngoài phạm vi của Service, Activity thì bạn nên sử dụng Application Context All rights reserved Đã đăng vào thg 7 7, 2018 3:55 CH 4 phút đọc I. Khái quát về Context
II. Vậy Context dùng để làm gì?
III. So sánh Application và Activity Context
Đa phần các View nên truyền vào Activity Context để có thể apply các theme,style, dimensions tự định nghĩa. Nếu ko có trường hợp nào định nghĩa riêng cho Activity, default sẽ là trường hợp định nghĩa riêng cho Application. Đa số các trường hợp bạn nên sử dụng Activity Context, thông thường keyword this là instance của class cũng đại diện cho Activity Context.
IV. Phòng tránh memory leak
Tham Khảo
All rights reserved |