AppWidgets - Обновление содержимого Intent динамически

У меня есть AppWidget который взаимодействует с двумя Activities, Первый Activity просит пользователя ввести текст. Вот код, чтобы начать это Activity от AppWidget:

Intent promptIntent = new Intent(context,
        TransparentPromptActivity.class);
promptIntent.putExtra("appwidget_id", appWidgetId);
promptIntent.putExtra("message", incomingMessage);
PendingIntent promptPendingIntent = PendingIntent.getActivity(
        context, 0, promptIntent, 0);
views.setOnClickPendingIntent(R.id.app_widget_tv,
        promptPendingIntent);

это Activity отправляет введенное сообщение обратно AppWidgeт, который отображает это. Тогда есть Activity который разделяет сообщение, и вот код, чтобы начать это Activity:

Intent shareIntent = new Intent(context, MainActivity.class);
shareIntent.putExtra("message", incomingMessage);
PendingIntent sharePendingIntent = PendingIntent.getActivity(
        context, 0, shareIntent, 0);
views.setOnClickPendingIntent(R.id.app_widget_btn_share,
        sharePendingIntent);

Как видите, сообщение хранится в локальном incomingMessage переменная. Тем не менее, когда второй Activity запущен, incomingMessage пусто, означает, что Intent содержимое не обновляется при изменении значения переменной. Как этот эффект может быть достигнут? Заранее спасибо.

1 ответ

Решение

Как этот эффект может быть достигнут?

Используйте соответствующий флаг на вашем getActivity() вызов, такой как FLAG_UPDATE_CURRENT, если вы создаете PendingIntent на том же ядре Intent (например, для той же деятельности) и меняются дополнения.

Как говорится, так как TransparentPromptActivity а также MainActivity не та же активность, FLAG_UPDATE_CURRENT не поможет Возможно, ваша проблема в том, что incomingMessage является null в вашем втором случае.

Другие вопросы по тегам