Я пытаюсь закрыть Уведомление с помощью AlarmManager и Broadcast Receiver, но метод onReceive никогда не вызывается, и мне интересно, почему?Я искал почти все связанные темы, но ни одна из них не могла мне помочь.Вот мой код:
public class NotificationCancelReceiver extends BroadcastReceiver {
@Inject
protected NotificationManager notificationManager;
public NotificationCancelReceiver() {
super();
App.appComponent.inject(this);
}
@Override
public void onReceive(Context context, Intent intent) {
String id = intent.getStringExtra(OtherParams.NOTIFICATION_ID);
if(!id.isEmpty()){
notificationManager.cancelNotification(id);
}
}
}
Here is the code reponsible for creating the alarm:
private void setCancelAlarm(String notificationId){
AlarmManager alarmManager = (AlarmManager) application.getApplicationContext().getSystemService(ALARM_SERVICE);
Intent intent = new Intent(application, NotificationCancelReceiver.class);
intent.putExtra(OtherParams.NOTIFICATION_ID, notificationId);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
application, Integer.parseInt(notificationId), intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP,
SystemClock.elapsedRealtime() + 10, pendingIntent);
}
Manifest.xml:
<receiver
android:name="services.NotificationCancelReceiver">
</receiver>
Я также внедряю Broadcast Receiver с Dagger, но он не срабатывает, даже когда я отключаю это:
@Singleton
@Component(modules = {
AppModule.class})
public interface AppComponent {
ActivityComponent getActivityComponent(ActivityModule module);
void inject(App app);
void inject(NotificationCancelReceiver notificationReceiver);
}