How to run callback on application launch?

android

Solution

The right, Android-approved way to do this is:

- Create your own `android.app.Application` class

- Override the `onCreate` method

- In the `AndroidManifest.xml`, change the `android:name` attribute of the `application` element to the name of your class

- Now, whenever your app is "started" (any one of your activites is started for the first time and no other instances are alive) `onCreate` will be called.

You may also find the `onTerminate` method useful.

Problem

I know Android's Activity model is a bit different from what I usually consider to be an "app". I want to do something (in this case, check some notifications on a server and show them if available) when my app is "launched". What is a good way to accomplish this? I likely don't want to do it in an activity's OnCreate, since each activity can be created any number of times - the code would get called more often than necessary. The app also has multiple entry points - would I have to duplicate the check in each activity? What I'm thinking of doing is setting up this code inside the Application object, along with a flag that tracks whether it's already been called - and just call it from each Activity's onCreate(). Is there a better or more "proper" way to do this?

Original source