Я думаю, что вы должны отладить ваше приложение.Установите несколько точек останова в нужных местах и продолжайте.Это самый простой способ выяснить значения ваших переменных во время выполнения.Я предполагаю, что что-то не так с:
byte[] byteArray = helper.getPicture(appWidgetId);
Этот метод, очевидно, иногда действует не так, как ожидалось, поэтому углубимся в этот.
* * * * * * * * *неправильное поведение исчезает, оно показывает ваш успех, только если метод getPicture
возвращает верный результат.Так что в случае нулевого результата вы просто ничего не видите, верно?
Другой совет - используйте исключения, чтобы выяснить, когда что-то пошло не так, чтобы вы могли реагировать на неожиданное поведение; -)