I would suggest you Strategy 2.
That's the way how Android basically works.
One of the advantages is when you rotate the device the last activity will be restored. With panels it's up to you to manage what panel was currently displayed and then make sure that this one will be displayed.
When I began with B4A I tended to use one Activity and several Panels, but then I changed to adopt the Android strategy
I have a large app (my first with B4A written a year + ago) that I split into multiple activities where I thought the logic would be best served. But some activities also had multiple panels, and when an app grows and develops the code grows too. It would have been easier had I set panels per activity at a lower level.
Using code modules you can share code that is common to activities.
Pro :
- When device is rotated the last activity will be restored
- Things that are taken care automatically like the back button
- The logic would be best served
Also one thing thats happened to me is that I can add an activity in have created for one application and its layout file and use it straight away. Has come in very handy.
For example :
if the user open 3 activities then work in the last and then press the back button the last activity (n.3) is closed/backgrounded by the system and the 2° activity will be restored automatically ? And so on ... ?
The only con would be that you need to handle communication between the activities (generally in the Activity_Pause/Resume subs) using global variables or file io.
Its not really a con, but something to be aware of.
I have done 1 activity per page but now have chosen a different approach. I'm using the PagerView library to create a slick swipe left|right app. that is all embedded in one activity. Sure I see advantages of several activities but for my particular purpose this works best. Especially the code can be a mess but on the other hand code modules can help with that. Even when using several activities the code can be a mess because you have to take care of transformation of data between activities.
In the end what counts is the user experience.
Are there any performance advantages by using several activities? Erel?
For now in this case I stick to one activity (except for a few things like help screens etc.). Majority of apps. have between 1-5 screens and that is not much.
For the rest I try to stick to the ICS guidelines.