2011-10-01 49 views
1

我创建了一个WidgetProvider和一个在系统上触发的服务TIME_TICK - 该部分工作正常,日志消息显示该服务正在工作AOK,它在实际的手机上看起来很棒。通过RemoteViews从服务更新小部件 - 确定在手机上,而不是在模拟器上工作

更新我的窗口小部件我用这样的代码(editted为清晰起见,所以可能有一个错字)

Log.d("xxx","Updating"); 
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.main); 
    views.setTextViewText(R.id.appwidget_text, "Some Text" + System.currentTimeMillis()); 
    ComponentName thisWidget = new ComponentName(context, SWClockWidgetProvider.class); 
    AppWidgetManager manager = AppWidgetManager.getInstance(context); 
    manager.updateAppWidget(thisWidget, views); 

在我的手机(的HTC Desire的运行2.2),它是完美的,小部件更新爆炸式分钟,每分钟。

在模拟器(运行2.2)上出现日志消息(例如服务正在运行),但小部件未更新。

现在我把在两个地方的代码 - 从提供的的onUpdate方法(因此它把东西放到在他们第一次显示的窗口小部件),并从服务的监听器(向他们)

现在,这里的怪异了 - 这是我的清单我原本宣布我的服务这样的

服务机器人:名字=“SWClockWidgetService。”

当我改变了明确提及包(这是相同的供应商的包当然)

service android:name =“com.somewhatdog.swclockwidget.SWClockWidgetService”

初始更新(从Provider onUpdate调用)工作但是从服务的侦听器的后续调用仍然不!

注:本来我所做的服务的内部类的供应商,但没有电话或模拟器上运行 - 如果这是相关反正不知道......

- 我大惑不解 - 同安卓在手机和模拟器 - 一个工程,一个不(这意味着这个工作在其他设备上的可能性是喜怒无常的至少说??)

我在这里有点失落 - 任何建议欣赏。

p.s.我已经在运行1.6的快乐模拟器上测试了它 - 它运行在运行2.1r1和2.3.3 tho的仿真器上,所以,谁知道...

+0

我知道它晚了,但只是想让你知道,现在你可以在一个名为Genymotion的模拟器上使用widget,它工作得很好。 –

回答

0

更进一步的实验表明,模拟器内的Widget更新刚刚被破坏。

即使您部署新代码,现有的小部件仍保持不变!

测试使用Androidx86提出问题仅限于模拟器寿 - 所以我想我会利用它来进行测试窗口小部件,而不是...

相关问题