1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Klick auf Notification macht nicht das was es soll... :(

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von mastix, 25.12.2009.

  1. mastix, 25.12.2009 #1
    mastix

    mastix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    88
    Erhaltene Danke:
    34
    Registriert seit:
    05.06.2009
    Moinsen Leutz,

    erstmal... frohe Weihnachten. :)

    Ich habe hier ein kleines Problem, bei dem ich nach stundenlangem Testen einfach nicht auf die Lösung komme. Ich denke, dass dies ziemlich einfach zu fixen ist... ich komm nur nicht drauf wie. :)

    Das Problem ist Folgendes:

    Wenn man bei meiner App auf eine Notification klickt, dann wird die Message der Notification in der App angezeigt. Das funktioniert wunderbar, solange die Activity im aktiv im Vordergrund ist. Sobald man diese in den Hintergrund verlegt, kommt zwar die App hoch, aber die Message wird nicht angezeigt. D.h. es kommt irgendwie die falsche Instanz (eine neue Instanz) hoch. Halte ich nun die HOME-Taste gedrückt und wähle dann meine App aus... sehe ich die Message...

    Da das ein bisschen blöd zu erklären ist... habe ich mal ein Video aufgenommen, was das zeigt:

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

    Ich bin mir ziemlich sicher, dass es nur einem von den Flags liegt, die ich dem Intent mitgebe... aber welche Flag-Kombi ist korrekt?

    Hier mal mein Code:

    Baue Notification zusammen:


    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);
    Reagiere auf Intent, um die Nachricht anzuzeigen:

    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));
    	}
        }
    Ich hoffe einer von euch hat den passenden Tipp! :)

    Sascha
     

Diese Seite empfehlen