2011-12-14 45 views
11

Theo tài liệu this answer hoặc tài liệu của android, có một số cách để có được Ngữ cảnh trong ứng dụng và chuyển nó sang một lớp/phương thức/bất cứ điều gì khác.Cách nào tốt hơn để lấy bối cảnh?

Giả sử tôi đang hoạt động Foo và cần chuyển ngữ cảnh cho nhà xây dựng của Bar.

Bar bar = new Bar(Foo.this); 
Bar bar2 = new Bar(this); //same as first i guess 
Bar bar3 = new Bar(getApplicationContext()); 
Bar bar4 = new Bar(getBaseContext()); 
Bar bar5 = new Bar(MyApp.getContext); // get context statically 

Có tính đến rò rỉ bộ nhớ, tốc độ, hiệu suất chung, cách nào sẽ là cách tốt hơn giữa tất cả các khả năng đó?

Trả lời

2

Bạn nên kiểm tra this question - mà về cơ bản bao gồm các giống như bạn.

Tài liệu dành cho nhà phát triển trên số Avoiding memory leaks cung cấp cho bạn giải thích hợp lý về một số situtations trong đó nhiều phương pháp khác nhau hợp lý để sử dụng.

0

Tôi không có câu trả lời trực tiếp nào cho câu hỏi của bạn. Nhưng nếu bạn so sánh Foo.this và sau đó tốt hơn nên sử dụng câu đầu tiên (trong trường hợp lồng nhau) thứ hai sẽ hiển thị lỗi.

Để thảo luận thêm về nó đi qua liên kết

Using Application context everywhere?.

Hy vọng nó sẽ giúp bạn

Các vấn đề liên quan