3

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

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

我很难让小部件显示这些空间。问题是小部件仅在 30 分钟后更新,当您将其更改为每秒更新一次时,您将面临电池问题。

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

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

我是android和java的新手。

4

3 回答 3

2

是的,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);
    }
}
于 2012-03-01T22:39:22.907 回答
2

你可以使用这个库:Android SQLiteAssetHelper

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

它帮助了我:)

于 2012-09-14T07:07:46.383 回答
1

如果您想以编程方式更新小部件,可以使用此答案中的方法

于 2011-03-18T16:36:21.107 回答