2013-04-22 37 views
6

Khi tôi đang sử dụng chế độ xem danh sách và tôi có lớp cơ sở tùy chỉnh, tôi nhận được màu văn bản khác nhau trong chế độ xem danh sách khi bộ tiếp hợp cơ sở được khởi tạo bởi getApplicationContextclassname.this. Bởi getApplicationContext Tôi nhận được màu văn bản màu trắng nhưng classname.this là màu đen. Bất cứ ai có thể giải thích nó cho tôi?Sự khác biệt giữa getApplicationContext và classname.this

+2

xem [ở đây] (http : //stackoverflow.com/questions/5018545/getapplication-vs-getapplicationcontext) – Gunaseelan

+0

có thể là bạn đã áp dụng một chủ đề khác cho hoạt động cụ thể của bạn, sau đó là toàn bộ ứng dụng. Điều này có thể gây ra sự khác biệt về kiểu dựa trên ngữ cảnh được sử dụng. – Shiv

+0

Tôi thực sự sử dụng android: theme = "@ style/Theme.VPI" trong tất cả hoạt động –

Trả lời

6

Về cơ bản, chúng là cả hai trường hợp Bối cảnh, nhưng sự khác biệt là thể hiện ứng dụng được gắn với vòng đời của ứng dụng, trong khi cá thể Hoạt động được gắn với vòng đời của một Hoạt động. Do đó, họ có quyền truy cập vào thông tin khác nhau về môi trường ứng dụng ...

thấy getApplicationContext

EDIT

Trong việc tìm kiếm câu trả lời của bạn nó sẽ giúp bạn Android Holo Light styling changes depending on chosen context

+0

Cảm ơn bạn rất nhiều Tôi đã tìm thấy câu trả lời của tôi trong bài viết của bạn –

+0

welcum :) thân yêu ... vui vì tôi có thể giúp bạn – Shiv

6

ActivityName.Điều này đề cập đến ngữ cảnh hoạt động. getApplicationContext() đề cập đến ngữ cảnh ứng dụng.

Hầu hết thời gian tốt hơn là sử dụng ngữ cảnh hoạt động.

Kiểm tra câu trả lời do phần mềm commonsware cung cấp. Có một lời giải thích chi tiết về chủ đề này.

When to call activity context OR application context?

Trích dẫn tạo liên kết ở trên

Dưới đây là lý do tại sao không sử dụng getApplicationContext() bất cứ nơi nào bạn đi:

  1. Nó không phải là một bối cảnh hoàn chỉnh, hỗ trợ tất cả mọi thứ Hoạt động đó. Những thứ khác nhau bạn sẽ cố gắng làm với bối cảnh này sẽ thất bại, chủ yếu liên quan đến GUI.

  2. Nó có thể tạo rò rỉ bộ nhớ, nếu Bối cảnh từ getApplicationContext() giữ trên một cái gì đó được tạo ra bởi các cuộc gọi của bạn trên nó mà bạn không làm sạch. Với một Activity, nếu nó nắm giữ một cái gì đó, một khi Activity bị thu thập rác, mọi thứ khác cũng sẽ bị xóa. Đối tượng Application vẫn còn trong suốt quá trình của bạn.

+0

Cảm ơn bạn rất nhiều nhưng thực sự tôi không thể hiểu tại sao màu văn bản khác nhau trong cả hai ngữ cảnh –

+0

đọc điểm 1 trong câu trả lời. có lẽ lý do. cho chúng tôi thấy một số mã. – Raghunandan

+0

Có, bạn đúng, có lẽ tôi nên đọc tham khảo ngữ cảnh cẩn thận –

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