Android-уведомление не работает для 2.3 пряник

Этот код работает для версии 2.3 выше (не работает для 2.3)

Intent resultIntent = new Intent(this, MainActivity.class);
resultIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);

NotificationCompat.Builder mBuilder =  new NotificationCompat.Builder(this)
     .setSmallIcon(R.drawable.abc_logo)
     .setContentTitle("My Title")
     .setWhen(System.currentTimeMillis())
     .setContentIntent(pendingIntent)
     .setContentText("My text");

    mBuilder.setContentIntent(pendingIntent);

    NotificationManager mNotificationManager =  (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    // mId allows you to update the notification later on.
    mNotificationManager.notify(NOTIFY_ID, mBuilder.build());

1 ответ

Решение

С PendingIntent.getBroadcast() Вы собираетесь отправить трансляцию всем возможным получателям. Проблема в:

resultIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

Он НЕ будет использоваться для запуска действия. Таким образом, вы не можете установить какие-либо из флагов, связанных с деятельностью, таких как FLAG_ACTIVITY_SINGLE_TOP.

Удалите его, и он должен работать на ГБ тоже.

Вы можете установить только флаги Intent, связанные с Activity, в PendingIntent, если вы вызываете getActivity() для получения PendingIntent.