Ich habe einen Dienst erstellt, und ich habe auch eine Benachrichtigung erstellt, so dass, wenn mein Dienst ausgeführt wird, eine Benachrichtigung dafür angezeigt wird. Nun, ich Benutzer möchte in der Lage sein, um die Benachrichtigung zu streichen/abtun, aber wenn ich versucht habe zu tun, so begegnet zwei Probleme:Ich kann die Benachrichtigung über den erstellten Dienst nicht löschen
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
password = intent.getStringExtra("password");
number = intent.getStringExtra("number");
Intent activityIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0,
activityIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this).
setContentTitle(getText(R.string.app_name)).
setContentText("Subject").
setContentInfo("Doing stuff in the background...").
setSmallIcon(R.drawable.ic).
setAutoCancel(true).
setContentIntent(pendingIntent).build();
startForeground(1, notification);
return super.onStartCommand(intent, flags, startId);
}
Dieser Code funktionierte perfekt, das einzige Problem mit diesem Code ist, dass Benutzer kann nicht streichen sie die Benachrichtigung geschlossen, also von der Suche um, fand ich, dass ich es durch das ersetzen ‚startForeground‘ Funktion mit
NotificationManager notificationManager =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0,notification);
beheben Und es funktionierte dann, ich Swipe entlassen kann, aber jetzt bekomme ich ein anderes Problem, Sobald ich Schließen Sie meine Anwendung (mit langem Drücken der mittleren Taste und schließen Sie alle Anwendungen) My App Thrills eine Nullpointerexzeption wenige Momente später zeigt auf die Linie:
als ob die Absicht null ist. Dies passiert nicht, wenn ich die startForeground-Funktion verwende
Was könnte das Problem sein?
Sie haben Recht, aber Sie haben in Ihrer Frage nicht erwähnt, dass Sie Ihren Dienst einschränken möchten, deshalb habe ich die START_NOT_STICKY-Lösung vorgeschlagen. –
Sie haben Recht, Entschuldigung, ich schien es nicht zu erwähnen. – javaLovah