Подтвердить что ты не робот

PendingIntent не открывается Активность в Android 4.3

В моем Service я открываю уведомление о нормальном запуске, используя этот код:

private final static NOTIFICATION_ID = 412434;
private void startNotification() {
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            this);
    builder.setSmallIcon(R.drawable.notification);
    builder.setContentTitle("Running");

    final Intent intent = new Intent(this, MainActivity.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    final PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
            intent, PendingIntent.FLAG_UPDATE_CURRENT);
    builder.setContentIntent(contentIntent);
    builder.setOngoing(true);
    builder.setAutoCancel(false);

    notification = builder.build();

    startForeground(NOTIFICATION_ID, notification);
}

PendingIntent должен открыть MainActivity, когда Уведомление будет прослушиваться. Это отлично работает на всех моих тестовых устройствах, используя Android 2.3.3, 2.3.5 и Android 4.1.

Это не работает, однако на моем Nexus 7 (Android 4.3) это не работает вообще. Ничего не происходит, когда я нажимаю на уведомление.

Что-то изменилось в том, как они собраны вместе, что я пропустил?

4b9b3361

Ответ 1

Кажется, что проблема на некоторых 4.3 устройствах. Его можно решить, предоставив значение не 0 для параметра requestCode.

Пример:

PendingIntent.getActivity(this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT);

Ответ 2

Это работает для меня:

Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(100);
contentIntent = PendingIntent.getActivity(this, randomInt, intent, PendingIntent.FLAG_UPDATE_CURRENT);