android小部件和持久数据

时间:2013-09-12 18:47:08

标签: java android android-widget widget android-appwidget

我有一个小appwidget configuration activityconfiguration 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'传递给新窗口小部件。

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

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

2 个答案:

答案 0 :(得分:0)

根据this link,您可以选择实现目标。

希望这些例子有所帮助,欢呼。

答案 1 :(得分:0)

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