• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Click on Notification does not work as expected... (see screencast!):(

mastix

Lurker
Hi guys,

first of all - Merry Christmas!!! :)

I have a strange problem here and spent too many hours figuring out what the problem might be. I definitely need your help here now... I'm pretty sure this is very easy to fix... if you know how... :)

I develop a little free app for German O2 customers so that they can send their 50 free Web-SMS directly from their Android phone and not only via web interface like O2 wants them to. These SMS are sent in the background using a service. This service generates notifications (e.g. Message sent successfully, Login successful/failed,...)

When I click on that notification the app should open and then display the notification message. This works pretty fine as long as the app is visible (foreground/active). When putting the app into the background it's getting launched as well, but it doesn't display the message... then, when I hold down the HOME-Key and select the app... the message gets displayed.

See the following video... to show you what I mean...

http://dl.dropbox.com/u/1676562/NotificationIssue.mov

I'm pretty sure it has something to do with the Fflags for my intent, so here's my code:

Setting the notification:

Code:
	// 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_NEW_TASK
		| Intent.FLAG_ACTIVITY_SINGLE_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);

Reacting on the incoming intent:

Code:
/*
     * (non-Javadoc)
     * 
     * @see android.app.Activity#onNewIntent(android.content.Intent)
     */
    @Override
    protected final void onNewIntent(final Intent p_intent) {
	// when called via notification, get the extras
	Log.d(TAG, "Called onNewIntent...");
	final Bundle extras = p_intent.getExtras();
	Log.d(TAG, "Extra: " + extras);
	if (extras != null
		&& extras.getString(Constants.NOTIFICATION_EXTRA_KEY) != null
		&& !extras.getString(Constants.NOTIFICATION_EXTRA_KEY).trim()
			.equalsIgnoreCase("")) {
	    Log.d(TAG, "Extra:"
		    + extras.getString(Constants.NOTIFICATION_EXTRA_KEY));
	    this.showLongMessage(extras
		    .getString(Constants.NOTIFICATION_EXTRA_KEY));
	}
    }

Would be great if someone was able to help me... :)

Sascha
 
Back
Top Bottom