3

ユーザーがスペースを作成および削除できるアプリを作成しています。スペースの例: オフィス、会議室、店舗など。ユーザーはその場所にいるときにスペースを設定します。たとえば、彼がオフィスにいる場合、彼はスペースをオフィスに設定します。

スペースはデータベースに格納されます。ホーム画面ウィジェットがあり、このウィジェットは設定されたスペースを表示する必要があります。例は現在オフィスを示す必要があります。

ウィジェットにこれらのスペースを表示させるのに苦労しました。問題は、ウィジェットが 30 分後にのみ更新され、バッテリーの問題に直面するよりも毎秒更新するように変更した場合です。

スペースが設定されたときにのみウィジェットを更新したい。

誰かがこの問題に対処する方法を知っているか、良いアドバイスを持っていますか. または、実際にこのように機能する優れたチュートリアルを知っています。

私はアンドロイドとJavaが初めてです。

4

3 に答える 3

2

このライブラリを使用できます: Android SQLiteAssetHelper

アプリケーションの raw アセット ファイルを使用してデータベースの作成とバージョン管理を管理する Android ヘルパー クラス。

それは私を助けました:)

于 2012-09-14T07:07:46.383 に答える
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 に答える
1

プログラムでウィジェットを更新する場合は、この回答のアプローチを使用できます

于 2011-03-18T16:36:21.107 に答える