Я пишу виджет Android. У меня есть MyAppWidgetProvider, который расширяет AppWidgetProvider.
В течение жизненного цикла виджета к нему обращаются различные обратные вызовы: onUpdate, onEnabled, onDisabled и т. Д. Они запускаются действиями ACTION_APPWIDGET_UPDATE, ACTION_APPWIDGET_ENABLED и т. Д.
Согласно Руководству по виджетам приложений , «[onDisabled] - это место, где вы должны очистить любую работу, выполненную в onEnabled». Я понял, что это означает, что onEnabled может установить некоторое состояние экземпляра в MyAppWidgetProvider, а onDisabled должен его разрушить. Однако я обнаружил, что для каждого отдельного действия создается новый экземпляр MyAppWidgetProvider.
Итак, это ожидаемое поведение? Должен ли я всегда ожидать создания нового экземпляра для каждого обратного вызова, или есть какой-то способ настроить получателя или отправителя широковещания на использование существующего экземпляра? Если всегда создается новый экземпляр, тогда небезопасно хранить любое состояние экземпляра в MyAppWidgetProvider, что не ясно из документов.