Sie können es auf diese Weise tun.
Zuerst erstellen Sie eine Benachrichtigung mit Aktionen darauf.
Intent intentLike = new Intent("MY_ACTION");
intentLike.putExtra("KEY","LIKE");
PendingIntent likePendingIntent = PendingIntent.getBroadcast(context,0,intentLike,PendingIntent.FLAG_UPDATE_CURRENT);
Intent intentShare = new Intent("MY_ACTION");
intentShare.putExtra("KEY","SHARE");
PendingIntent sharePendingIntent = PendingIntent.getBroadcast(context,1,intentShare,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("My notification")
.setContentText("Hello World!")
.addAction(R.drawable.notification_action_like, "Like", likePendingIntent)
.addAction(R.drawable.notification_action_share, "Share", sharePendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(mId, mBuilder.build());
Erstellen Sie jetzt eine BroadcastReceiver-Klasse, um Werte zu empfangen.
public class LikeShareReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String receivedValue = intent.getExtra("KEY");
if (receivedValue.equals("LIKE")) {
//update like in Realm database.
}else if (receivedValue.equals("SHARE")) {
//update share in Realm database.
}
}
}
Fügen Sie diesen BroadcastReceiver in der Manifestdatei hinzu.
<receiver android:enabled="true" android:name="LikeShareReceiver">
<intent-filter>
<action android:name="MY_ACTION" />
</intent-filter>
</receiver>
Wie funktioniert das?
Wenn ein Benutzer auf eine Aktionsschaltfläche klickt, wird eine Übertragung mit einer Absicht ausgelöst, die Werte enthält. BroadcastReceiver empfängt diese Übertragung und aktualisiert die Datenbank entsprechend.
Hinweis: addAction() -Methode nur mit api Ebene arbeiten> = 4.1
, was Sie bisher versucht haben? –
@BradleyWilson Ich habe es geschafft, geplante Benachrichtigungen an den Benutzer zu senden, aber ich bin unsicher, wie man in die Datenbank schreibt, wenn die App nicht geöffnet ist. – JesperQv
Leider bin ich kein Experte in diesem Bereich. Ich hatte gehofft, dass Sie Ihrer Frage einen Code hinzufügen würden, um zukünftigen Lesern die Richtung zu erläutern, die Sie eingeschlagen haben oder unternommen haben. –