2011年12月17日土曜日

【Android】ウィジェットを確実に更新させる

Androidのウィジェットの内容を更新する場合、以下のように
updateAppWidgetとすると思います。

  1. private void updateAppWidget(Context context, RemoteViews remoteViews) {  
  2.     ComponentName thisWidget = new ComponentName(context, ClockAppWidgetProvider.class);  
  3.     AppWidgetManager manager = AppWidgetManager.getInstance(context);  
  4.     manager.updateAppWidget(thisWidget, remoteViews);  
  5. }  

ただ、複数配置した時など、各ウィジェットへ確実に更新が行われないようです。
特に時計ウィジェットだと顕著です。

その場合、

  1. int[] appWidgetIds = manager.getAppWidgetIds(thisWidget);  
  2. for (int i : appWidgetIds) {  
  3.     manager.updateAppWidget(i, remoteViews);  
  4. }  

のように各ウィジェットIDに対して更新するようにすると、確実に更新されるようです。

ただし、重いです。。何が原因で重いのかはまだわからないですが、、、

0 件のコメント:

コメントを投稿