Thursday, March 1, 2012

Writing an Android library - Using its own custom Application class (getApplication)


I'm writing an Android library and I wish to use a custom Application class, which will be accessible from all of the library's activities (using the getApplication method).



The problem is when I call the getApplication method from one of my library's activities, it returns the application class of the app using my library (and not the custom class I declared in the library's Android manifest).



My current guess (based on this answer and the official documentation ) is that the application using my library must also declare the custom Application class in their Android manifest - which is a problematic solution, since that application can also have its own custom class (and a single app cannot have more than one custom Application class, right?).



Can anyone offer a better solution? (or verify that this solution is accurate)



Any help will be appreciated..

1 comment:

  1. Nothing wrong with your custom Application implementation and AndroidManifest.xml. The correct way of using your custom Application in code is casting.

    Suppose you have a MyApplication that extends android.app.Application, to get MyApplication instead of Application:

    Boolean runInTest = ((MyApplication) getApplication()).isRunInTet();


    Hope that helps.

    ReplyDelete