2011-10-01 50 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提出問題僅限於模擬器壽 - 所以我想我會利用它來進行測試窗口小部件,而不是...

相關問題