Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Needing Context in non-Activity classes

I have some classes within my application that need to call Android functions that require the Context as a parameter. I don't have it as the class is not a subclass of the Activity class.

What is the correct way to tackle this problem?

  1. Pass it as a parameter on each call?
  2. Pass it at class instantiation and keep it?
like image 295
theblitz Avatar asked Mar 31 '11 10:03

theblitz


People also ask

Is a context always from an activity?

In case, when you have to initialize a library in an activity, always pass the application context, not the activity context. You only use getApplicationContext() when you know you need a Context for something that may live longer than any other likely Context you have at your disposal.

What is the context of the activity?

it's the context of current state of the application/object. It lets newly-created objects understand what has been going on. Typically, you call it to get information regarding another part of your program (activity and package/application).

What is the difference between activity context and application context?

They are both instances of Context, but the 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.


1 Answers

It depends on the role of the class. But anyway pass ApplicationContext but not Activity one. If you pass Activity context gc can't remove it from the memory when after you don't need activity anymore. But application context is used while application was not finished by OS.Refer Avoid Memory Leaks

like image 193
Maxim Avatar answered Sep 28 '22 10:09

Maxim