1

我有一个appwidgetlitte configuration activity
configuration activity我有一个EditText
存储特定字符串和一个按钮来创建小部件。
在小部件本身中,只有一个Imageview带有显示按钮的静态图像。

当我按下按钮时,我正在执行以下操作:

AppWidgetManager app_widget_manager = AppWidgetManager.getInstance(context);
RemoteViews local = new RemoteViews(context.getPackageName(), R.layout.main);
app_widget_manager.updateAppWidget(widget_id, local);

Intent create = new Intent(this, MyWidget.class);
create.setAction("com.test.mywidget.CREATE");
create.putExtra("toastmessage", edittext1.getText().toString);
context.sendBroadcast(create);

Intent result_value = new Intent();
result_value.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widget_id);
setResult(RESULT_OK, result_value);
finish();

额外'toastmessage'的只是edittext的内容。

在小部件中,我捕获广播onReceive()并获取之前传递的字符串值作为新小部件的
额外值。'toastmessage'

如果我按下我的小部件,我会用传递的字符串创建一个 toast
- 这是我的问题 -
对于创建的每个小部件,传递的字符串都是不同的。但是我存储传递的字符串
的变量(在小部件中)在一段时间后或当手机重新启动或应用程序被杀死或类似的东西时被重置, 所以 需要每个小部件实例 的持久数据。

我需要存储哪个小部件传递了哪个字符串,
并在每次小部件更新时获取此数据。 我怎样才能做到这一点?

4

2 回答 2

0

根据此链接,您有一些选择来实现您的目标。

希望这些例子有帮助,干杯。

于 2013-09-12T21:25:22.493 回答
0

您收到的widget_id是小部件实例的唯一标识符。将其用作识别持久数据的密钥。

于 2015-09-25T19:39:04.910 回答