У меня есть ДОМАШНИЙ ВИДЖЕТ с КНОПКОЙ.Вот действие, добавленное к кнопке:
Intent editContact = new Intent(Intent.ACTION_EDIT, ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.valueOf(contactID)));
editContact.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingEditContact = PendingIntent.getActivity(rcvContext, appWidgetID, editContact, PendingIntent.FLAG_UPDATE_CURRENT);
Всякий раз, когда внутренняя активность андроида для редактирования контакта оставляется либо путем редактирования контакта, либо без нажатия кнопки возврата, все работает нормально, и действие удаляется.из стека.Перезапуск действия из другого виджета корректно отображает соответствующие данные контакта для редактирования.
Если контакт не отредактирован и оставлен нажатием кнопки «Домой» устройства Android, перезапуск другого контакта с другогоВиджет снова заменяет предыдущие контактные данные. К сожалению, это происходит только для второго запуска. Любая попытка, превышающая 2 (т.е. повторное нажатие кнопки «Домой» без изменения контакта), приводит к активности, содержащей данные предыдущего контакта для редактирования.Видимо, ожидающие намерения кэшируются.Вот почему PendingIntent.FLAG_UPDATE_CURRENT должен обновить намерение относительно того, какой контакт редактировать, но безрезультатно: - (
У меня также было получено следующее:
НАМЕРЕНИЕ В ОЖИДАНИИ:
PendingIntent.FLAG_CANCEL_CURRENT;
ДЕЯТЕЛЬНОСТЬ:
editContact.putExtra("random", System.currentTimeMillis());
Мне бы хотелось получить ваш совет по решению этой проблемы. Большое спасибо людям!