0

我有一个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当变量值改变时内容不更新。怎样才能达到这种效果?提前致谢。

4

1 回答 1

0

怎样才能达到这种效果?

在您的调用中使用适当的标志getActivity(),例如FLAG_UPDATE_CURRENT,如果您PendingIntent在同一个核心上创建一个Intent(例如,为同一个活动)并且正在更改额外内容。

话虽这么说,因为TransparentPromptActivityMainActivity不是同一个活动,FLAG_UPDATE_CURRENT将无济于事。也许你的问题是incomingMessagenull的第二种情况。

于 2012-07-08T12:01:03.177 回答