我有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
t。然后有一个共享消息的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
内容不会更新。如何实现这种效果?提前谢谢。
答案 0 :(得分:0)
如何实现这种效果?
如果您要在同一核心getActivity()
上创建PendingIntent
,请在Intent
来电中使用相应的标记,例如FLAG_UPDATE_CURRENT
(例如,针对同一活动)并且正在改变演员。
话虽如此,由于TransparentPromptActivity
和MainActivity
不是同一个活动,FLAG_UPDATE_CURRENT
无济于事。在您的第二种情况下,您的问题可能是incomingMessage
null
。