Я создал функциональность в appwidget, которая позволяет пользователю изменять фон с прозрачного на полупрозрачный. По умолчанию для xml установлен прозрачный. Когда пользователь изменяет предпочтение фона, настройка сохраняется и фон обновляется с использованием кода ниже:
public static Bitmap setBackground (int bgcolor)
{
  {
    Bitmap.Config config=Bitmap.Config.ARGB_8888; 
    Bitmap bitmap=Bitmap.createBitmap(2, 2, config);
    Canvas canvas=new Canvas(bitmap); 
    canvas.drawColor(bgcolor);
    return bitmap;
  }
}
/* set background */
if (ExampleWidgetProvider.background==1)
  views.setImageViewBitmap(R.id.bgcolor, setBackground(Color.parseColor("#aaaaaaaa")));
else
  views.setImageViewBitmap(R.id.bgcolor, setBackground(Color.parseColor("#00000000")));
Один пользователь сообщает, что фон заменен на прозрачный, когда он установил его полупрозрачным. Это может показаться случайным в течение нескольких минут в час или полдня.
Я понял, что это проблема с фоном, а не с каким-то изменением настроек, поскольку я отправил пользователю версию приложения, которая всегда будет менять фон на полупрозрачный, то есть используя:
/* set background */
if (ExampleWidgetProvider.background==1)
  views.setImageViewBitmap(R.id.bgcolor, setBackground(Color.parseColor("#aaaaaaaa")));
else
  views.setImageViewBitmap(R.id.bgcolor, setBackground(Color.parseColor("#aaaaaaaa")));
Но интересно, что это не исправить. Поскольку значение по умолчанию в xml установлено на прозрачное, я подозреваю, что приложение каким-то образом перезапускается или перерисовывается, и используется макет по умолчанию.
Как я могу обнаружить и/или обойти это?
Обновление. Пользователь (как и ожидалось) исправил исправление, которое постоянно меняет цвет фона в xml до полупрозрачного. Это означает, что система сбрасывает фон по неизвестной причине.
Пользователь использует LG PG 970 V. 2.2.2 и за что стоит использовать "Juice Defender Ultimate" и настроен на то, чтобы не подключаться к Интернету в течение ночи. Мой appwidget действительно подключается к Интернету через определенные промежутки времени.
