When I'm using list view and I have a custom Base Adapter class, I get different text color in list view when base adapter is instantiated by getApplicationContext
and classname.this
.
By getApplicationContext
I get white text color but classname.this
is black. Can anyone explain it for me?
Basically they are both instances of Context, but the difference is application instance is tied to the lifecycle of the application, while the Activity instance is tied to the lifecycle of an Activity. Thus, they have access to different information about the application environment...
see getApplicationContext
EDIT
In finding your answer it will help you Android Holo Light styling changes depending on chosen context
ActivityName.this refers to activity context. getApplicationContext () refers to the application context.
Most of the times it is better to use activity context.
Check the answer provided by commonsware. Has a detail explanation on the topic.
When to call activity context OR application context?
Quote form the above link
Here are reasons why not to use getApplicationContext() wherever you go:
It's not a complete Context, supporting everything that Activity does. Various things you will try to do with this Context will fail, mostly related to the GUI.
It can create memory leaks, if the Context from getApplicationContext() holds onto something created by your calls on it that you don't clean up. With an Activity, if it holds onto something, once the Activity gets garbage collected, everything else flushes out too. The Application object remains for the lifetime of your process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With