2017-08-30 1 views
1

Ich versuche, den eingegebenen Text auf die direkte Antwort zu erhalten. Ich kann den Text erhalten, aber wenn ich auf die Schaltfläche "Text senden" klicke, öffnet sich die Aktivität, die die Absicht anzeigt.Direkte Antwortbenachrichtigung startet eine Aktivität

val resultIntent = Intent(this, MessagesActivity::class.java) 
val stackBuilder = TaskStackBuilder.create(this) 

stackBuilder.addNextIntent(resultIntent) 

val resultPendingIntent = PendingIntent.getActivity(
     this, 
     0, 
     resultIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT 
) 

Und hier ist Benachrichtigung Builder

val mBuilder = Notification.Builder(this, id) 
    .setContentTitle(data["title"]) 
    .setContentText(data["body"]) 
    .setLargeIcon(image) 
    .addAction(action) 
    .setSmallIcon(R.drawable.logo) 
    .setAutoCancel(true) 

Ich will nicht, dass es die Aktivität öffnen. Auch ich habe versucht, einen Intent-Service zu verwenden, es funktioniert nicht.

Antwort

0

Sie verwenden PendingIntent.getActivity, was bedeutet, dass Sie das Ergebnis Ihrer Aktivität bearbeiten möchten. Es ist logisch, dass diese Aktivität gestartet werden muss, bevor Sie fortfahren. Aus Dokumentation von getActivity:

ein PendingIntent abrufen, die eine neue Tätigkeit, wie der Aufruf Context.startActivity (Intent) beginnen. Beachten Sie, dass die Aktivität außerhalb des Kontexts einer vorhandenen Aktivität gestartet wird. Daher müssen Sie das Startflag Intent.FLAG_ACTIVITY_NEW_TASK in der Absicht verwenden.

Sie müssenverwenden.

Für weitere Informationen siehe here

Verwandte Themen