我在写Android小部件。我有扩展AppWidgetProvider的MyAppWidgetProvider。为接收到的每个广播创建了一个MyAppWidgetProvider的新实例?
在小部件的生命周期,它得到各种回调调用它:的onUpdate,onEnabled,onDisabled,等他们通过操作触发ACTION_APPWIDGET_UPDATE,ACTION_APPWIDGET_ENABLED等
按照App Widget Guide“[onDisabled]是你应该清理在onEnabled中完成的任何工作的地方“。我将其解释为意味着onEnabled可能会在MyAppWidgetProvider中设置一些实例状态,并且onDisabled应该将其删除。但是,我发现为每一个操作都创建了一个MyAppWidgetProvider的新实例。
那么,这是预期的行为?我是否总是希望为每个回调创建一个新实例,或者有什么方法可以配置广播接收者或发送者使用现有实例?如果总是创建一个新实例,那么将任何实例状态存储在MyAppWidgetProvider中是不安全的,这从文档中是不清楚的。