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