Scratch my comments below on the part about LocalActivityManager and the
startActivity method...I just re-read it and it seems to be talking about
the activity that you're starting...meaning if you try and restart the same
activity based on the different conditions listed it will either be
destroyed and a new one started, or it will use the current one...However, I
still want to know how I can retain the state of the first activity that
starts the second one when it seems that onSaveInstanceState is not being
called by using this method of replace the content view.

Thanks,
DanielleM

On Tue, Feb 15, 2011 at 1:40 PM, DanielleM <[email protected]> wrote:

> Hello all:
>
> I have a question about ActivityGroup and lifecycles. In my app, I
> have a tabbed interface where each tab starts a new activity. The
> first tab acts as a Media Player with two buttons for playing one of
> two different music streams. This activity extends the ActivityGroup
> because there is a third button on the page that launches an activity
> that acts as an information page. I'm using an Activity Group because
> I wanted the tab navigation to stay on top when I switch to the
> information activity.
>
> The information activity has several buttons on it, one of which looks
> like an X which will switch back to the first activity with the Media
> Player buttons. I found examples online using the following code to
> switch between the two using Activity Group:
>
> Code that's in the MediaPlayer Activity, this function is used in the
> info button onClick listener:
>
> public void replaceContentView(String id, Intent newIntent) {
>     View view = getLocalActivityManager().startActivity(id,
> newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
>                                   .getDecorView();
>     this.setContentView(view);
>
> Code that's in the Information Activity in the closeButton's onClick
> Listener:
> Intent parent = new Intent(v.getContext(), Home.class);     NOTE:
> Home.class is the MediaPlayer Activity
> Home parentActivity = (Home)getParent();
> parentActivity.replaceContentView("info", parent);
>
>
> This code works properly in the sense that my tab navigation stays on
> top and it gives the impression that the Information is "sliding" on
> top of the Media Player stuff and then "sliding" off screen again when
> the X button is pressed. However, I've noticed some weird behavior.
>
> If one of the streams is playing, and then the information button is
> pressed, the stream continues to play, but when you click the close
> button on the information page to go back to the media, the Media
> Player gets re-initialized so that if I try to click the button to
> stop the currently playing stream, another instance of the stream
> starts playing on top of the one that's already playing. There's no
> way to stop the original one.
>
> I've been putting Log statements in each of the lifecycle methods
> (onPause, onStop, onDestroy) and yet it seems that none of these
> methods are being called when I switch to the Information Activity as
> none of my log messages are appearing in the debugger.
>
> I originally thought that by saving the state using something like
> onSaveInstanceState would fix it, but it doesn't seem to be calling
> this method either.
>
> Upon reading on the Android Developer site about LocalActivityManager
> and the startActivity method it states: "...If the new intent is the
> same as the previous one and the new intent does not have the
> FLAG_ACTIVITY_CLEAR_TOP set then the current activity will remain
> running as is.....Otherwise, the current activity will be finished and
> a new one started".
>
> Basically it's my understanding that according to the rules defined
> here and the way in which I'm using this, my first activity should be
> finished which I assume means it's killed, but could be wrong, and
> then the second activity starts. But as I stated earlier it seems this
> is not the case. If I call finish() in the Information activity for
> the close button it kills the entire app and takes me back to the Home
> screen of the device.
>
> Is there a better way to do this or how can I save the state of my
> MediaPlayer objects and buttons so that they're not re-created every
> time you return from the Information page?
>
> Hope this all makes sense and thanks for the help,
> DanielleM
>

-- 
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

Reply via email to