Sự khác biệt giữa:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
Bạn có thể giải thích bằng một ví dụ đơn giản không?
Sự khác biệt giữa:
getApplicationContext()
getBasecontext()
getApplication()
getParent()
Bạn có thể giải thích bằng một ví dụ đơn giản không?
Câu trả lời:
getApplicationContext()
Bối cảnh ứng dụng được liên kết với Ứng dụng và sẽ luôn giống nhau trong suốt vòng đời.
getBasecontext()
không nên được sử dụng, chỉ sử dụng Context
thay vì nó được liên kết với hoạt động và có thể bị phá hủy khi hoạt động bị phá hủy.
getApplicationContext () Bối cảnh ứng dụng được liên kết với Ứng dụng và sẽ luôn giống nhau trong suốt vòng đời.
getBasecontext () không nên được sử dụng, chỉ sử dụng Context thay vì nó được liên kết với hoạt động và có thể bị hủy khi hoạt động bị hủy.
getApplication () chỉ khả dụng cho Hoạt động và Dịch vụ. Mặc dù trong các triển khai Hoạt động và Dịch vụ của Android hiện tại, getApplication () và getApplicationContext () trả về cùng một đối tượng, không có gì đảm bảo rằng điều này sẽ luôn xảy ra (ví dụ: trong một triển khai của nhà cung cấp cụ thể). Vì vậy, nếu bạn muốn lớp Ứng dụng mà bạn đã đăng ký trong Tệp kê khai, bạn không nên gọi getApplicationContext () và truyền nó vào ứng dụng của mình, vì nó có thể không phải là cá thể ứng dụng (mà bạn rõ ràng đã gặp phải với khung thử nghiệm).
getParent () trả về đối tượng của hoạt động nếu chế độ xem hiện tại là một phần tử con. Nói cách khác, trả về đối tượng hoạt động lưu trữ chế độ xem con khi được gọi bên trong phần tử con.