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
в вашем втором случае.