2012-09-13 15 views
8

İyi çalışan bir ListView tabanlı widget'ım var ve kendisini oluşturmak için bir JSON web servis çağrısına dayandırıyor. Harika çalışan ve web'den yeniden yüklemeyi zorlayan bir yenileme düğmesine sahibim. Bunu, sırayla hemDataSetChanged() öğesini, ardından updateAppWidget() öğesini çağıran özel bir yayın kullanarak yapıyorum. Benim bulduğum şey, Android'in widget'ı otomatik olarak güncellediğinde (XML tanımımı ayarladığım zaman aralığına bağlı olarak), yalnızca updateAppWidget() işlevinin çağrıldığı ve onDataSetChanged() işlevinin hiçbir zaman çalıştırılmayacağı ve güncelleştirilmiş bir zaman damgasına yol açacağıdır. Her updateAppWidget() çağrısında güncellerim, ancak eski veriler.Android Widget'lar: onDataSetChanged tarafından çağrılmadı updateAppWidget()

Android'i belirli bir aralıkta CallSetChanged() öğesini çağırmaya veya tetiklemeye nasıl zorlayabilirim?

+0

Uzak bağdaştırıcıda 'notifyDataSetChanged()' yöntemini hiç aradınız mı? – Eric

+0

Hayır. Bunu ne zaman yapmalıyım? Otomatik güncelleme kodu bana bir geri bildirimde bulunmuyor mu? – RealCasually

+0

Güncellemede, adaptörünüzün bazı referanslarına sahip olmanız gerektiğini düşünüyorum (bunu nasıl kaydetmek istediğinizden emin değil), daha sonra bildirimi çağırabilir. onDataSetChanged() ', yalnızca * mesajın gönderilmesinden sonra * çağrılır. – Eric

cevap

9

Benim AppWidgetProvider.onUpdate() yöntemimde AppWidgetManager.notifyAppWidgetViewDataChanged(widgetId, view)'u çağırmam gerekiyor.

İlgili konular