getApplicationContext (), getBaseContext (), getApplication (), getParent ()


Câu trả lời:


33

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 Contextthay 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.


16
những gì về getApplication () và getParent ()
Nikunj Patel

107

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 ()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.


16
Như bạn đã đề cập, chúng ta không nên sử dụng getBaseContext (), nếu nó không quá quan trọng, thì tại sao nó lại có trong mã hóa và lợi thế chính của nó là gì. xin hãy giải thích cho tôi về điều đó
Pir Fahim Shah

getBaseContext () nên được sử dụng trong các tình huống rất cụ thể. Có một lời giải thích rất tốt ở đây - medium.com/@ali.muzaffar/...
lomza
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.