我有一个小部件,可以显示从Internet提取的一些数据。我可能在屏幕上看到多个小部件,每个小部件都显示一些数据,部分与其他小部件相同。
我有时会从Internet重新获取数据并更新小部件视图。
我以MVC样式对此进行了建模:我有一个模型,可以在该模型上调用“重新获取数据”,并且可以在视图上进行侦听。
我的问题:
A)让我的模型成为单身人士明智吗?
B)我可以依靠所有小部件由同一个AppWidgetProvider提供服务吗?还是我的某些小部件可以由其他AppWidgetProvider实例提供服务?或者,更笼统地说:是否可以保证我的AppWidgetProvider只有一个实例?
如果我的AppWidgetProvider仅有一个实例,则可以在此处为模型使用实例变量,然后在需要的地方传递我的AppWidgetProvider或模型。也许更好的选择?
C)在AppWidgetProviders onUpdate
方法中,是否可以确保在每次调用时都将相同的“上下文”对象作为参数传递?
最佳答案
让我的模型成为一个模型是否明智?
单身人士?
考虑到AppWidgetProvider
中不能包含静态数据,我想说一个单例是非常不安全的。您需要使用持久性存储,例如文件或数据库。
我可以依靠所有小部件吗
由同一AppWidgetProvider服务?
这将是同一堂课。绝对是will not be the same instance,除非您正在做一些非常邪恶的事情,例如尝试提供持久的服务。
或者我的一些小部件可以送达
通过不同的AppWidgetProvider
实例?
是。
或更笼统地说:是否可以保证我的AppWidgetProvider只能有一个实例?
可以保证不会只有您的AppWidgetProvider
实例。 "If this BroadcastReceiver was launched through a tag, then the object is no longer alive after returning from this function."
在AppWidgetProviders onUpdate中
方法,我可以确定相同
“上下文”对象作为参数传递
每次调用?
我认为这不是一个安全的假设。
关于android - AppWidgetProvider的模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3392132/