Issue with cancelling the AlarmManager - PendingIntent

后端 未结 5 1832
轻奢々
轻奢々 2020-12-19 01:49

I have an app which reminds people to do their tasks. So there is one PendingIntent, now the user can delete the alarm when he wants to. In this code, there is just one Pend

5条回答
  •  旧巷少年郎
    2020-12-19 02:46

    So there is one pending intent,now the user can delete the alram when he wants to. Ib this code there is just one pending intent for multiple user alarms so I am confused on cancelling that particular alarm where extras is pill

    intent.putExtra("Name_pill", "pill");
    

    The extra wont wont work to cancel your pending intent .

    pendingIntent.cancel() will only remove that pending intent which triggered with same filterEquals(Intent) and that method is not compare any extra data given to intent .

    this is the contain from developer site of android filterEquals(Intent)

    Determine if two intents are the same for the purposes of intent resolution (filtering). That is, if their action, data, type, class, and categories are the same. This does not compare any extra data included in the intents.

    if we consider your scenario , when you will pass that Extra to intent at that time you only need to save unique ID in some sharedpreference which given in parameter and one thing your should keep in mind that ID has to be an unique .

    and and when you suppose to cancel that alarm , just pass same intent with that saved ID and cancel that pendingintent .

    Create

    preference_saved_value =  DatabaseConstants.NOTIFICATION_ID + 1
    sender = PendingIntent.getBroadcast(this,
    preference_saved_value, intent,
    PendingIntent.FLAG_UPDATE_CURRENT)
    

    CANCEL

    sender = PendingIntent.getBroadcast(this, 
    preference_saved_value, intent,PendingIntent.FLAG_UPDATE_CURRENT);  
    sender.cancel()
    

提交回复
热议问题