我有一个小部件,它显示了从Internet获取的一些数据。我可以在屏幕上看到多个小部件,每个部件都显示一些数据,部分与其他小部件相同。
我不时地从Internet上重新获取数据并更新小部件视图。
我已经用MVC风格对此进行了建模:我有一个模型,我可以在该模型上调用“re data”,并让视图监听该模型。
我的问题:
A)让我的模型成为一个单身的人是明智的吗?
B) --我能依赖于所有的小部件都由同一个AppWidgetProvider提供吗?或者我的一些小部件可能由不同的AppWidgetProvider实例提供?或者,更普遍地说:是否可以保证我的AppWidgetProvider只有一个实例?
如果我的AppWidgetProvider只有一个实例,那么我可以在这里为模型使用一个实例变量,并在需要的地方传递AppWidgetProvider或模型。也许是更好的选择?
C)中的AppWidgetProviders onUpdate方法,我能确保每个调用都传递相同的“上下文”对象作为参数吗?
发布于 2010-08-02 23:01:12
让我的模特成为单身人士是明智的吗?
考虑到您不能在AppWidgetProvider中拥有静态数据,我认为单例是非常不安全的。您需要使用持久存储,例如文件或数据库。
我能相信所有的小部件都由同一个AppWidgetProvider提供吗?
会是同一个班。它绝对是将不再是同一个实例,除非你正在做一些真正邪恶的事情,比如试图拥有一个永恒的服务。
或者我的一些小部件可能由不同的AppWidgetProvider实例提供?
是。
或者,更普遍地说:是否可以保证我的AppWidgetProvider只有一个实例?
有一个保证,,而不是,只会是AppWidgetProvider的一个实例。“如果这个BroadcastReceiver是通过标记启动的,那么在从这个函数返回之后,这个对象就不再是活动的了。”
在AppWidgetProviders onUpdate方法中,是否可以确保每个调用都传递相同的“上下文”对象作为参数?
我不认为这是一个安全的假设。
https://stackoverflow.com/questions/3392132
复制相似问题