Я немного озадачен тем, как работает техника AppWidget от android.Почему AppWidgetProvider создается каждый раз, когда я добавляю виджет приложения?
Я переопределен конструктор AppWidgetProvider как это:
public class MyProvider extends AppWidgetProvider {
public MyProvider() {
Log.d("TEST", "Creating...")
}
public void onUpdate(..., int[] appWidgetIds) {
// updating stuff here
}
}
Из того, что я прочитал в документации, я понял, что AppWidgetProvider инстанциируется один раз, когда виджет этого типа добавляется в первый раз. Если добавится еще один виджет , то такой же тип, он будет управляться именно этим провайдером.
Но я только что обнаружил, что это не тот случай!
Для каждого виджета, который я добавляю, android создает новый MyProvider (я вижу, что из «adb logcat» - он печатает «Создание ...» для каждого виджета)! Я не понимаю почему :) Может, у меня что-то не так? Или документация не понятна. В чем причина того, что appWidgetIds переданы в onUpdate и другими способами, если каждый поставщик управляет только ОДИН виджетом?
Я верю, что приложение AppWidgetManager создается один раз, приложение AppWidgetProvider будет создано для каждого экземпляра добавленного виджета. Где в документах вы видите, что поставщик виджета приложений создается только один раз, я не могу найти эту информацию там? –
Я просто предположил, что, поскольку я видел аргумент appWidgetIds :) Я подумал: «В чем смысл иметь его, если он всегда будет равен 1». Спасибо. Также см. Ответы ниже, ребята правы – dimsuz