Я столкнулся с интересной ситуацией с использованием ProgressBar в Виджете Приложения... В документации (http://developer.android.com/guide/topics/appwidgets/index.html) говорится, что ProgressBar является поддерживаемым классом виджета...
У меня нет проблемы, заставляя ProgressBar отобразиться в моем Виджете Приложения, но проблема состоит в том, что я хочу, чтобы он только был отображен как визуальная обратная связь пользователю, когда фоновая обработка происходит.
На ImageViews я делаю это через RemoteViews.setViewVisibility (), и все хорошо работает. Однако с ProgressBar я получаю исключение, говоря, что ProgressBar не может использовать этот метод.
Это является намеренным, или действительно ли это - ошибка? Там каким-либо путем является к обходному решению эта проблема?
Возможно, это ошибка. В исходном Java-коде самого Android есть специальная аннотация ( @RemotableViewMethod
), чтобы пометить метод как доступный через RemoteViews
. Представление
имеет это для setVisibility ()
, но ProgressBar
переопределяет этот метод и не имеет аннотации в отдельной редакции. Если @RemotableViewMethod
не наследуется, а переопределение «отменяет» аннотацию, это объясняет наблюдаемый вами симптом.
Временным решением является использование двух макетов виджетов приложения и выбор желаемого (с ProgressBar
) или без него при создании объекта RemoteViews
при обновлении виджета приложения.
Я сделаю заметку, чтобы попытаться воспроизвести это, и, если я увижу то же самое, я опубликую проблему по этому поводу в системе отслеживания проблем Android .