Это, кажется, общая проблема, и я рассмотрел все связанные с этим вопросы, которые я мог найти: Активность не набирает новые цели, Почему дополнительные данные (целое число) не отправляются в намерениях андроидного уведомления?, Уведомление передает старые предикаты Intent, Невозможно добавить дополнительные уведомления для уведомления, проблема уведомления об ожидающем намерении Android; но все еще не может понять этого.
Проблема такая же. Я установил уведомление с PendingIntent с дополнительной информацией, и я не получаю его с другой стороны.
Вот код для генерации уведомления:
Notification notification = new Notification(R.drawable.icon, getResources().getString(R.string.notification_ticker), System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE;
Intent start_test = new Intent(this, MyActivity.class);
start_test.putExtra("start_test", true);
start_test.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pi = PendingIntent.getActivity(this, (int) System.currentTimeMillis(), start_test, PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this, getResources().getString(R.string.notification_title), getResources().getString(R.string.notification_content, expired), pi);
nm.notify(NOTIFICATION_ID, notification);
И с другой стороны:
boolean start_test=getIntent().getBooleanExtra("start_test", false);
На самом деле пакет не существует (getExtras() возвращает null).
Я пробовал разные флаги для PendingIntent.getActivity
(FLAG_UPDATE_CURRENT
, FLAG_CANCEL_CURRENT
, FLAG_ONE_SHOT
), ни одна из них не помогла.
Как показано в коде, я использую getCurrentMillis, чтобы убедиться, что идентификатор запроса изменился....
Также найдено, что в MyActivity не вызываются вызовы onCreate
и onNewIntent
. только onResume
есть. Даже если FLAG_ACTIVITY_NEW_TASK
установлен...?
Я пропустил что-то очень простое?