Кажется, это обычная проблема, и я уже рассмотрел все связанные вопросы, которые смог найти : . Активность не получает новое намерение , Почему дополнительные данные (целое число )не отправляются в намерении уведомления Android? , Уведомление передает старые дополнения ,Невозможно добавить дополнения к намерению в уведомлении , Проблема уведомления об ожидающем намерении 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
установлен... ?
Я пропустил что-то очень простое?