【问题标题】:App widget getting content from database - update issues应用小部件从数据库中获取内容 - 更新问题
【发布时间】:2011-03-18 16:32:49
【问题描述】:

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

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

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

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

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

我是 android 和 java 新手。

【问题讨论】:

    标签: android database android-widget android-appwidget


    【解决方案1】:

    是的,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);
        }
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用这个库:Android SQLiteAssetHelper

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

      它帮助了我:)

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2022-10-17
          • 1970-01-01
          • 2021-07-08
          • 1970-01-01
          • 1970-01-01
          • 2019-03-23
          • 1970-01-01
          • 2013-04-17
          • 2012-06-05
          相关资源
          最近更新 更多