Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

(android) How to do something on app "launch"?

Tags:

android

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?

like image 529
alex_c Avatar asked Sep 08 '09 20:09

alex_c


1 Answers

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.

like image 88
Isaac Waller Avatar answered Oct 26 '22 01:10

Isaac Waller