If I'm understanding your intended application architecture correctly, it sounds like you want two things that are different but closely related:
1. you want a generic superclass for all of your activities. 2. you want to create and deploy more than one activity in your package to handle different behaviors. Well, actually, you can do both in a way - try following the loosely coupled designs common on android, and integrate behavior across activities, services, and broadcast receivers using intents. Some ideas: To handle #1 you can use the CustomApplication class Dianne suggests. To handle #2, you can create more than one activity class or service for each type of task you want to perform and add them all to your manifest. Use CustomAppilcation for things that require a user interface, and a service (or perhaps just a broadcast receiver) for things that don't require a user interface. For different behaviors to respond differently to : onLowMemory, onTerminate and onConfigurationChanged, use one unique activity for each callback and each type of behavior. Also, you can have just one activity for your main application, and in onLowMemory, onTerminate, and onConfigurationChanged, create a new intent and load it up with various extras depending on what behavior you want to see happen. Then broadcast that intent and let a broadcast receiver or service catch it. You can have multiple broadcast receivers or services, or just a single one which performs differently depending on the extras you loaded the Intent with. Clear as mud? Hope that helps. Richard Schilling Root Wireless On Jul 14, 1:20 pm, Dianne Hackborn <[email protected]> wrote: > On Tue, Jul 14, 2009 at 12:59 PM, magicpig <[email protected]> wrote: > > Can you provide the APIs to get the ActivityInfo? > > http://developer.android.com/reference/android/content/pm/PackageMana... > > > > really seems like a hack. Why not have a single Application object, that > > > allows others to register to receive the callbacks they are interested > > in? > > It seems that Application class is the first one to run when the > > application starts. > > Here,I assume that others mean all the components including activities/ > > services/... > > So, would you mind give out an example for it? > > Just write a single CustomApplication class everyone uses, with a method to > add a callback for onLowMemory(). > > For creation, us normal Java stuff: > > class MyGlobals { > static MyGlobals sGlobals; > > static MyGlobals getInstance() { > // Note: use synchronization if this will be accessed from multiple > threads. > > if (sGlobals != null) return sGlobals; > > sGlobals = new MyGlobals(); > return sGlobals; > } > > > > } > > > Really appreciate the help > > > > (And honestly, you don't need the Application object. Stuff you do in > > > onCreate() you can do the first time someone accesses whatever global > > object > > > they want... which can actually be better, to avoid initializing things > > > that you don't need. And there is also a broadcast that gets sent when > > > onLowMemory is called, so you can just register for that.) > > > > On Tue, Jul 14, 2009 at 11:35 AM, magicpig <[email protected]> > > wrote: > > > > On Tue, Jul 14, 2009 at 12:12 AM, magicpig <[email protected]> > > > > wrote: > > > > > Thanks Dianne for the quick reply. > > > > > My two Application.java do some more things than having the > > > > statics: > > > > 1. own the ability to store current activity for use in all the > > > > activities in the same process. (In the former description, I just > > > > talked about two for simple). > > > > 2. Creating some instances for later use(maybe can be moved to > > > > statics) > > > > > So, if there is a way for replacing this easily, I am happy to do. > > > > > BTW, I think we can read the process name, right? > > > > > Thanks a again. > > > > > On Jul 15, 1:58 am, magicpig <[email protected]> wrote: > > > > > Thanks for the reply. > > > > > > I am trying hard to merge them together and the Application logic > > > > > seems a little more than setting the globals, such performing > > > > > differently on onLowMemory, onTerminate and onConfigurationChanged. > > > > > > So,is it possible to get the intent that starts the activity or the > > > > > different process name in Application#onCreate? > > > > > > Thanks > > > > > > On Jul 14, 2:20 pm, Dianne Hackborn <[email protected]> wrote: > > > > > > > Sorry, you can't do that. There are really very few reasons to > > have a > > > > > > custom Application anyway. I would generally suggest staying away > > from > > > > it, > > > > > > and just using statics for your globals. > > > > > > > On Mon, Jul 13, 2009 at 11:17 PM, magicpig <[email protected]> > > > > wrote: > > > > > > > HI, > > > > > > > > I need two activities run in different processes in the > > same > > > > > > > application. Now I have made it work by specifying the different > > > > > > > process name in "android:process". > > > > > > > > But I met a problem, from > > > > >http://developer.android.com/guide/topics/manifest/application-elemen. > > .. > > > > > > > , > > > > > > > we have only one superclass of Application will run before the > > > > > > > activity starts(I have tested it, and each time a after new > > processes > > > > > > > start, this Application(its superclass) will run before > > activity). > > > > > > > But, my two activities have two different superclasses of > > > > > > > Applications. So, how to make Applications for different > > activities > > > > > > > run for its corresponding activity? > > > > > > > > If there is no way to use different Application class for > > > > > > > different activity, how can I make a flag for the common > > Application > > > > > > > superclass to judge which process(by getting its name) is > > running? > > > > > > > > BTW, the two activities were on the separated development > > flow > > > > > > > and I am trying to merge them. > > > > > > > > Thanks a lot. > > > > > > > -- > > > > > > Dianne Hackborn > > > > > > Android framework engineer > > > > > > [email protected] > > > > > > > Note: please don't send private questions to me, as I don't have > > time > > > > to > > > > > > provide private support, and so won't reply to such e-mails. All > > such > > > > > > questions should be posted on public forums, where I and others can > > see > > > > and > > > > > > answer them. > > > > -- > > > Dianne Hackborn > > > Android framework engineer > > > [email protected] > > > > Note: please don't send private questions to me, as I don't have time to > > > provide private support, and so won't reply to such e-mails. All such > > > questions should be posted on public forums, where I and others can see > > and > > > answer them. > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

