• Необходимо отловить нажатия на кнопки в Notification. В чём ошибка?

    @stilroof
    У вас одинаковые реквест коды у PendingIntent. При создании PendingIntent система смотрит, есть ли аналогичный Intent, созданные ранее, или нет. Если есть - использует его. В вашем случае оба Intent одинаковы (iMore и iClose). Точнее, интенты различаются экстра-данными, но при сравнении они не учитываются. Поэтому при создании piClose берется интент iMore, а не iClose.

    Как пофиксить: использовать в PendingIntent разные request code. Например, так:

    Intent iMore = new Intent(MainService.BROADCAST_ACTION);
            iMore.putExtra(ACTION, "more");
            PendingIntent piMore = PendingIntent.getBroadcast(this, 1, iMore, 0);
    
            Intent iClose = new Intent(MainService.BROADCAST_ACTION);
            iClose.putExtra(ACTION, "close");
            PendingIntent piClose = PendingIntent.getBroadcast(this, 2, iClose, 0);
    Ответ написан
    Комментировать