Whoops...I wasn't done yet:

---------------------------------------------
Option One:
---------------------------------------------
@Override
public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   processMyIntent(getIntent);
}

@Override
protected void onNewIntent(Intent intent)
{
   processMyIntent(intent);
}

private void processMyIntent(Intent intent)
{
   intent.doSomething();
}


---------------------------------------------
Option Two:
---------------------------------------------

@Override
public void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   processMyIntent();
}

@Override
protected void onNewIntent(Intent intent)
{
  setIntent(intent);
  processMyIntent();
}

private void processMyIntent()
{
   Intent intent = getIntent();
   intent.doSomething;
}



Personally, I'm a fan of Option Two since you might have code
elsewhere that calls getIntent() and it makes sense to me to have
onNewIntent "refresh" the Activity's intent by calling setIntent
(theNewIntent);




On Jan 19, 10:56 am, RNekic <robertne...@gmail.com> wrote:
> In cases where I've needed to do this, I call a method from both
> onCreate and onNewIntent since, to my knowledge, they don't fire
> together; one or the other fires depending on the situation.
>
> In your Intent processing method, you can either pass in an Intent or
> have it call getIntent().  Note, if your shared method uses getIntent,
> be sure to call setIntent(intent) from within onNewIntent.  For
> example:
>
> Option One:
>
> public void onCreate(Bundle savedInstanceState)
> {
> super.onCreate(savedInstanceState);
>
> On Jan 19, 10:37 am, mastix mc <masti...@googlemail.com> wrote:
>
>
>
> > Hi,
>
> > thanks for the hin, I have now changed the launchmode of my activity
> > to "singleTop":
>
> > and changed the code to look like this:
>
> > // The PendingIntent to launch our activity if the user selects this
> >         // notification
> >         final Intent notificationIntent = new Intent(ManagerFactory
> >                 .getMasterActivity(), MailerActivity.class);
> >         notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
> >         Log.d(TAG, "Set new message to Notification: " + p_message);
> >         notificationIntent
> >                 .putExtra(Constants.NOTIFICATION_EXTRA_KEY, p_message);
> >         Log.d(TAG, "Setting requestCodeToFixNotificationBug: "
> >                 + s_requestCodeToFixNotificationBug);
> >         final PendingIntent contentIntent = PendingIntent.getActivity(
> >                 ManagerFactory.s_service, 
> > s_requestCodeToFixNotificationBug++,
> >                 notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
>
> >         notification.setLatestEventInfo(ManagerFactory.s_service,
> > p_tickerText,
> >                 p_message, contentIntent);
> >         return notification;
>
> > Still the same issue! So it did not change anything. :( The app is
> > running in the background... what the heck is going on here? :(
>
> > And @RNekic was right... if the app is not active (running in the
> > background), it does not call onNewIntent() but onCreate(). How could
> > I tell my code to use the old instance instead of creating a new one?
>
> > Sascha
>
> > On Jan 18, 9:15 pm, reyden <mr.jakovlje...@gmail.com> wrote:
>
> > > I've had a similar issue with one of my activities that was supposed
> > > to be launched via notifications. After some digging I've solved it by
> > > declaring "singleTop" launch mode for the activity in manifest and by
> > > using FLAG_ACTIVITY_CLEAR_TOP flag on the pending intent for
> > > notification manager...
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to