I'm trying to detect when my notification gets cleared. My question directly refers to this answer which outlines what I'm suppose to do. This is how I'm implementing the actions:
// usual Notification initialization here
notification.deleteIntent = PendingIntent.getService(context, 0, new Intent(context, CleanUpIntent.class), 0);
notificationManager.notify(123, notification)
This is the CleanUpIntent class:
class CleanUpIntent extends IntentService {
public CleanUpIntent() {
super("CleanUpIntent");
}
@Override
protected void onHandleIntent(Intent arg0) {
// clean up code
}
}
Afterwards, I simply launch the notification like I normally would but when I go to test it out (pressing "Clear All Notifications") nothing happens. I inserted a line of code that out print something to LogCat when the IntentService gets started, but nothing ever ran. Is this how I'm suppose to use Notification.deleteIntent?
You should use getBroadcast methode instead getService and should register receiver for specific Action.
An explicit receiver is not required. deleteIntent will be called automatically while pressing the clear button.
What you need to do is register a
BroadcastReceiver
(probably in your AndroidManifest.xml or alternatively usingregisterReceiver
in aService
) and then setdeleteIntent
to be anIntent
that will be caught by that receiver.sample code which will be called whenever user clears the notification, hope it will help you .
NotificationBroadcastReceiver.java
AndroidManifiest.xml