시간 업데이트를 하는 단순한 위젯 하나를 만들려고 합니다.
헌데 RemoteView를 이용해서 TextView에 시간이  업데이트가 되지 않네요...
(로그 확인으로는 호출은 1초단위로 잘되는데 업데이트가 안됨)
참고로 AlarmManager를 이용해서 1초마다 RemoteView를 이용한 화면 갱신을 하도록 구현하였습니다.
아래는 소스 발췌부분입니다.

고수님들의 의견 부탁드립니다.

- TimeWidget.java
public class TimeWidget extends AppWidgetProvider {
 // declare member variable..
 private static final String TAG = "TimeWidget";
 private static AppWidgetManager appWidgetManager;

 
 // declare method
 @Override
 public void onUpdate (Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds)
 {
  Log.i(TAG,"onUpdate");
        if (appWidgetIds == null) {
            appWidgetIds = appWidgetManager.getAppWidgetIds(
                    new ComponentName(context, TimeWidget.class));
        }
       
        if(appWidgetIds == null)
        {
         Log.i(TAG,"onUpdate appwidgetIds is null");
         return;
        }
        this.appWidgetManager = appWidgetManager;
        UpdateService.regAppWidgetIds(context,appWidgetIds);
  
        StartUpdate(context, appWidgetIds);
 }
 
 public static void buildUpdate(Context context, String time_str, int appWidgetId)
 {
  Log.i(TAG,time_str);
  RemoteViews views= new RemoteViews(context.getPackageName(), R.layout.time_layout);
  views.setTextViewText(R.id.now_time, (CharSequence)time_str);
  appWidgetManager.updateAppWidget(appWidgetId, views);
 }

 public void StartUpdate(Context context,int[] appWidgetsIds)
 {
        Intent updateIntent = new Intent(context, UpdateService.class);


        PendingIntent pendingIntent = PendingIntent.getService(context, 0, updateIntent, 0);
        if(pendingIntent == null)
         Log.i(TAG,"pendingIntent is null");
        else
         Log.i(TAG,"pendingIntent is not null");
       
        Calendar cal = Calendar.getInstance();
        // Schedule alarm, and force the device awake for this update
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 1000, pendingIntent);
 }
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------
-UpdateService.java
public class UpdateService extends Service {
 
 //private static boolean sThreadRunning = false;
 private static int[] sAppWidgetIds;
 private static final String TAG="UpdateService";
 
 private DateFormat format = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM,Locale.getDefault());
 private static Context context;

 public void onStart(Intent intent, int startId)
 {
  super.onStart(intent, startId);
  
  Log.i(TAG,"Onstart");
  int size = sAppWidgetIds.length;
  for(int i=0;i < size; i++) {
   TimeWidget.buildUpdate(context, format.format(new Date()), sAppWidgetIds[i]);
  }
  
 }
 
 @Override
 public IBinder onBind(Intent intent)
 {
  return null;
 }
 
 public static void regAppWidgetIds(Context _context, int[] widgetIds)
 {
  context = _context;
  sAppWidgetIds = widgetIds;
 }
 }