日付変更時のウィジェット更新その2

前回日付変更時にウィジェット更新されないということで

日付変更時のウィジェット更新

「android:updatePeriodMillis」を「0」以外に設定すると解消としたが、、、

だめでした。。。頻度は減って、

ウィジェットが更新されなくても

自動更新時に復活するようにはなったのですが、、、

ということでウィジェット更新されないのはひとまずあきらめました。。。

アプリ起動時にAppWidgetProviderを継承したクラスに

オーバーライドで実装しているonReceiveが動作するようにブロードキャスト送信を実装し

onReceive内でupdateAppWidgetを呼び出すように対応

アプリ側の処理

    public static String UPDATE_WIDGET = "com.XXX.YYY.ZZZ.UPDATE_WIDGET";

    Intent widgetUpdate = new Intent();
    widgetUpdate.setAction(UPDATE_WIDGET);
    sendBroadcast(widgetUpdate);

ウィジェット側の処理

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
        if(intent.getAction().equalsIgnoreCase(UPDATE_WIDGET)){
            updateWidget(context);
        }
    }
    private void updateWidget(Context context) {
        OutPutLog.logDebug("Start");

        AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
        int appWidgetIds[] = appWidgetManager.getAppWidgetIds(new ComponentName(context, ウィジェット.class));
        for(int iCnt = 0; iCnt < appWidgetIds.length; iCnt++) {
            updateAppWidget(context, appWidgetManager, appWidgetIds[iCnt]);
        }

        OutPutLog.logDebug("End");
    }

マニフェスト

    <intent-filter android:priority="13">
        <action android:name="om.XXX.YYY.ZZZ.UPDATE_WIDGET" />
    </intent-filter>

ひとまずこれでウィジェット更新されなくてもアプリを起動すれば

解消、、、ということで勘弁を。。。

スポンサーリンク
スポンサーリンク
スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。