【问题标题】:android widgets and persistent dataandroid小部件和持久数据
【发布时间】:2013-09-12 18:47:08
【问题描述】:

我有一个小appwidget 和一个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' 只是编辑文本的内容。

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

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

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

【问题讨论】:

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


    【解决方案1】:

    根据this link,您有一些选择来实现您的目标。

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

    【讨论】:

    • 但是我如何区分小部件实例呢?
    • 嗯,我现在使用了共享首选项,但效果并不理想……但还是谢谢
    • 你可以用你的代码和错误打开其他问题,我和这里的更多人可以帮助你;-)
    • 其实这个问题很清楚,问题不仅在于持久化数据,还在于为每个特定的小部件实例持久化数据。我认为这不需要一个新问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多