2012-02-10 63 views
2

看看下面的代码我需要每秒更新一次onUpdate方法,请问有人可以举一个很好的例子吗?主要是我需要从CurFreq(context);更新代码views.setTextViewText(R.id.text_widget_batt, prefNameBattery+"%");如何每秒刷新小部件?

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
     final int N = appWidgetIds.length; 


     for (int i=0; i<N; i++) { 
      int appWidgetId = appWidgetIds[i]; 


      Intent intent = new Intent(context, MyActivity.class); 
      PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); 


      RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget); 
      views.setOnClickPendingIntent(R.id.layout_widget, pendingIntent); 

      CurFreq(context); 
      Temp(context); 
      Battery(context); 

      SharedPreferences myPrefsInfo = context.getSharedPreferences("myPrefsInfo", Context.MODE_PRIVATE); 
      String prefNameCurFreq = myPrefsInfo.getString(WidgetCurFreq, ""); 
      String prefNameTemp = myPrefsInfo.getString(WidgetTemp, ""); 
      String prefNameBattery = myPrefsInfo.getString(WidgetBattery, ""); 

      views.setTextViewText(R.id.text_widget_freq, prefNameCurFreq); 
      views.setTextViewText(R.id.text_widget_temp, prefNameTemp+",0°C"); 
      views.setTextViewText(R.id.text_widget_batt, prefNameBattery+"%"); 


      appWidgetManager.updateAppWidget(appWidgetId, views); 
     } 
    } 
+1

应用程序小部件的设计不是每秒更新一次。 – CommonsWare 2012-02-10 13:29:12

+0

但这不是我的问题的答案。 – Adam 2012-02-11 09:12:53

+0

你会注意到我没有提供它作为答案,而是作为评论。 – CommonsWare 2012-02-11 11:59:35

回答

-1

您可以编写一个服务,并实现一个计时器,并据此更新部件的每一秒。 在定时器中使用OnStartCommand(Intent,int,int)服务方法调用您的方法。

+0

我用Service和Thread解决了它。但谢谢你的建议。 – Adam 2012-02-11 09:11:36