I'd like to extend Application in my Android app. I've done this such that I've created an extended Application object called MyApplication and added it to the manifest.
I'd now like to add some getters and setters to hold some information. It looks like I'll need to pass the application Context to any classes which do not contain a Context.
For example, say I create a class called MyObject (in its own java file):
public class MyObject {
public void doStuff() {
// do stuff
}
}
How might I access MyApplication from doStuff()? It looks like I'll need to pass the application Context to MyObject. Is this typical? Is there a possibility of leaks?
Also, to make sure I'm clear, will MyApplication (and the variables within) live throughout the application's lifecycle, or not? Either way is fine. I just want to make sure I account for this if I need to.
And lastly, any links to some example source to show what different things extending Application is useful for would be appreciated.
As far as I know, passing along contexts is not exceptional in Android development. Well, either that or I'm doing it wrong.
I'm not sure if you needed this answered or not, but from a context, you can access the Application
object like this:
((MyApplication) context.getApplicationContext()).getMyGlobalVariable();
Your MyApplication
class should live throughout the entire application lifecycle, yes.
Also check out this answer.