我有一个小部件,可以显示从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/

10-10 15:00