Некоторые виджеты приложений не обновляются?

Я пишу активность запуска для размещения виджетов приложений. В основном вот что я делаю.

  1. Мое представление контейнера для всех виджетов приложений - это настраиваемая ViewGroup.
  2. При добавлении виджетов я сначала вызываю активность конфигурации для добавляемого виджета.
  3. Я вызываю AppWidgetHost.startListening () в основном activity.onStart () и stopListening () в onStop ()
  4. При добавлении виджета я делаю следующее: application.getAppWidgetManager (). BindAppWidgetIdIfAllowed (appWidgetId, componentName); AppWidgetHostView hostView = application.getAppWidgetHost (). CreateView (контекст, appWidgetId, appWidgetInfo); hostView.setAppWidget (widgetId, appWidgetInfo); myViewGroup.addView (hostView);
  5. Я не вижу RemoteException в журналах, и агрессивный вызов AppWidgetHost.startListening () не помогает.

К тому же не все виджеты не обновляются, например, штатный виджет часов работает нормально. Это происходит особенно с минималистичным текстовым виджетом и некоторыми другими. После добавления виджета его можно обновлять в течение 1-2 минут, прежде чем он перестанет работать. Другое наблюдение, связанное с этим, заключается в том, что когда я нажимаю на минималистичный виджет, изменяю макет и сохраняю. Новый макет не будет применен к существующему виджету. Это заставляет меня чувствовать, что в моем коде есть какие-то ошибки, но я не могу понять, где.

Заранее благодарим за помощь!

Извините, я не могу вставить сюда подробный код, потому что они разбросаны. Но при необходимости могу предоставить любую подробную информацию. Спасибо еще раз!


person Farmer    schedule 12.08.2013    source источник


Ответы (1)


Неважно. В конце концов я понял. Причина в том, что я использовал контекст приложения вместо контекста активности при создании AppWidgetManager и AppWidgetHost.

person Farmer    schedule 18.08.2013