3 Stimmen

Benachrichtigung Nicht öffnen Aktivität onCLick

Ich möchte eine Benachrichtigung erstellen, die die Aktivität öffnen soll, wenn darauf geklickt wird. Aber wenn ich auf die Benachrichtigung klicke, wird die Aktivität nicht geöffnet. Hier ist mein Code:

NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);

    Intent intent = new Intent(context, MessageReceivedActivity.class);
    intent.putExtra("payload", payload);
    intent.setAction(Long.toString(System.currentTimeMillis()));
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
            intent, PendingIntent.FLAG_CANCEL_CURRENT);

    Notification.Builder notification = new Notification.Builder(context)

    .setContentTitle("Nachricht erhalten")
    .setSmallIcon(R.drawable.icon)
    .setContentText(payload)
    .setContentIntent(pendingIntent)
    .setAutoCancel(true);

    Notification notificationn = notification.getNotification();

    notificationManager.notify(0, notificationn);

5voto

Bashar Astifan Punkte 432

Verwenden Sie dies:

Benachrichtigung.Builder Benachrichtigung = new Notification.Builder(context)
.setContentIntent(getDialogPendingIntent(Text, intentName));

private PendingIntent getDialogPendingIntent(String dialogText,
            String intentname) {
        return PendingIntent.getActivity(
                context,
                dialogText.hashCode(),
                new Intent(ACTION_DIALOG)
                        .putExtra(Intent.EXTRA_TEXT, dialogText)
                        .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
                        .setAction(intentname), 0);
}

getDialogPendingIntent(Text, intentName) : intentName\=com.yourProject.exrta.yourIntentName

Sie können addFlags oder putExtra ändern, wenn Sie möchten.


Wenn der Aufruf mit dem Intent-Namen nicht funktioniert, verwenden Sie es mit der Klasse wie folgt, und es sollte funktionieren:

Intent notificationIntent = new Intent(MainActivity.this, TestActivity.class);
// setzen Sie den Intent, damit er keine neue Aktivität startet
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
                            Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent = PendingIntent.getActivity(MainActivity.this, 0, notificationIntent, 0);

NotificationManager notificationManager = (NotificationManager) MainActivity.this
                        .getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder notification = new Notification.Builder(MainActivity.this)
                .setContentTitle("Nachricht empfangen")
                .setSmallIcon(R.drawable.ic_launcher)
                .setAutoCancel(true)
                .setContentIntent(intent);

Notification notificationn = notification.getNotification();
notificationManager.notify(1, notificationn);

3voto

Fayyaz Ali Punkte 767

Versuchen Sie dies:

NotificationManager notificationManager = (NotificationManager) context
        .getSystemService(Context.NOTIFICATION_SERVICE);

Intent intent = new Intent(context, MessageReceivedActivity.class);
intent.putExtra("payload", payload);
intent.setAction(Long.toString(System.currentTimeMillis()));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);

Notification.Builder notification = new Notification.Builder(context)
.setContentTitle("Nachricht erhalten")
.setSmallIcon(R.drawable.icon)
.setContentText(payload)
.setContentIntent(pendingIntent)
.setAutoCancel(true);

Notification notificationn = notification.build();
notificationManager.notify(IHR_NOTIF_ID, notificationn);

0voto

user3766662 Punkte 1

Dies hat für mich funktioniert:

Context context1 = loggedin.this.getApplicationContext();

NotificationManager notificationManager = ( NotificationManager )context1.getSystemService(NOTIFICATION_SERVICE);

Notification updateComplete = new Notification();

updateComplete.icon = android.R.drawable.stat_notify_sync;

updateComplete.tickerText = context1.getText(R.string.notification_title);

updateComplete.when = System.currentTimeMillis();

Intent notificationIntent = new Intent(context1, loggedin.class);

PendingIntent contentIntent = PendingIntent.getActivity(context1, 0, notificationIntent, 0);

String contentTitle = context1.getText(R.string.notification_title).toString();

String contentText;

contentText = context1.getText(R.string.notification_info_success).toString();
updateComplete.setLatestEventInfo(context1, contentTitle, contentText, contentIntent);

int LIST_UPDATE_NOTIFICATION = 0;
notificationManager.notify(LIST_UPDATE_NOTIFICATION, updateComplete);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X