2012-08-28 64 views
0

我见过关于小部件没有更新的其他一些问题,但所有这些都是因为updatePeriodMillis被配置为小于30分钟的值,并且我已将其设置为1小时并且现在正在检查几个小时。Android应用小部件没有更新

我已经从我的实际窗口小部件项目开始一个单独的项目来测试更新,但我无处可去。

小部件只是使用currentTimeMillis()更新TextView。

AndroidManifest.xml中

<receiver android:name="TestWidget" android:exported="false"> 
     <intent-filter> 
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> 
     </intent-filter> 
     <meta-data android:resource="@xml/widget" android:name="android.appwidget.provider"/> 
    </receiver> 

widget.xml

<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    android:initialLayout="@layout/widget" 
    android:minHeight="40dp" 
    android:minWidth="250dp" 
    android:updatePeriodMillis="3600000" > 
</appwidget-provider> 

一切加载罚款第一个呼叫,但被的onUpdate不会再调用。

有什么建议吗?

编辑:

TestWidget.class只覆盖的onUpdate

@Override 
public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

    final int N = appWidgetIds.length; 

    for (int i = 0; i < N; i++) { 
     // Inflate the layout 
     RemoteViews v = new RemoteViews(context.getPackageName(), 
       R.layout.widget); 
     v.setTextViewText(R.id.text1, Double.toString(Math.random())); 
     v.setTextViewText(R.id.text2, 
       Long.toString(System.currentTimeMillis())); 

     // Update the widget 
     appWidgetManager.updateAppWidget(appWidgetIds[i], v); 

    } 
} 
+0

你能告诉我们你用来扩展appwidget提供者的类吗? (TestWidget) –

+0

完成。将它添加到帖子中。正如我所说,这只是一个测试,只是为了看到更新功能。实际的事情是做更多的工作,但即使这样简单的工作也没有成效。 ps .:在Galaxy Nexus股票上运行JB – Budius

+0

您是否在代码中重写了onReceive方法?如果是的话,你是否有以下内容:super.onReceive(context,intent); –

回答

0

我想道歉,对社会不必要的问题,因为它似乎在,要么我的手机是在演戏了年底(考虑我重新启动了这个东西),或者我只是有点住院。

看来,onUpdate真的需要几个小时才能开始被框架调用。在过去的3个小时(我在此之前睡觉),我可以看到最新的即将来临。

我没有删除这个问题,以防万一有人遇到同样的问题,您真的需要等待!

谢谢。

+0

我刚刚说我已经将你的代码复制到我的项目中,它工作> D,所以我可以确认代码的作品。 –