App小部件从数据库获取内容 - 更新问题

时间:2011-03-18 16:32:50

标签: android database android-widget android-appwidget

我正在创建一个允许用户创建和删除空间的应用。空间示例:办公室,会议室,商店等。用户在该位置时将设置空间。例如,如果他在办公室,他将把空间设置为办公室。

空格存储在数据库中。 我有一个主屏幕小部件,这个小部件需要显示设置的空间。示例现在需要显示办公室。

我很难让小部件显示这些空间。问题是小部件仅在30分钟后更新,并且当您更改它时每秒更新一次,而不是面对电池问题。

我只希望在设置空格时更新小部件。

有谁知道如何处理这个问题或者有一些好的建议。 或者知道任何实际以这种方式工作的好教程。

我是android和java的新手。

3 个答案:

答案 0 :(得分:2)

您可以使用此库:Android SQLiteAssetHelper

  

一个Android助手类,用于使用应用程序的原始资产文件管理数据库创建和版本管理。

它帮助了我:)。

答案 1 :(得分:0)

如果要以编程方式更新窗口小部件,可以使用this answer

中的方法

答案 2 :(得分:0)

是的,dave.c给出的链接在很大程度上是正确的,但是如果一个人正在使用由集合支持的小部件,在我的情况下是一个数据库,稍作修改就会得到预期的结果:

private void updateAllWidgets() {
    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getContext().getApplicationContext());
    int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(getContext().getApplicationContext(), ListWidgetProvider.class));
    if (appWidgetIds.length > 0) {
        // Tell the widgets that the list items should be invalidated and refreshed!
        // Will call onDatasetChanged in ListWidgetService, doing a new requery
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.notes_list);
    }
}