我计划编写一个IntentService来下载新的包(应用程序的新项目)。我唯一的问题是,当我广播下载结束时,如果应用程序正在运行,我必须更新内存模型。如果它没有运行,则不需要做任何事情,因为应用程序将在启动时从DB创建内存模型。在性能方面,UI可以从内存中运行,而不是从数据库中运行。 任何想法我应该如何接近,或者我完全走错了路?
编辑:为了清楚起见:假设我有MyIntentService,它将新行插入我的数据库,然后触发一个由MyBroadcastReceiver接收的BroadcastIntent。现在我遇到的问题是,MyBroadcastReceiver的实例应该以某种方式通知Model类,它是一个单例。问题是,只有当我的应用程序正在运行时,此模型(单例)实例才可用,因为这仅由UI使用(仅使用数据库会慢一些)。如果没有UI可以使用它,则无需通知我的Model实例。我不能让我的模型成为BroadcastReceiver,因为它们是随时启动的,它们也不能是单例(据我所知)。
答案 0 :(得分:0)
回答并说出只有你的单词没有代码的东西有点困难。可以创建项目的其他部分,从DB初始化/创建“内存模型”,这部分应该是未定的,所以你可以随时随地使用它,在开始你的活动/应用程序或者广播时。
答案 1 :(得分:0)
我通过将UI注册为广播接收器并根据需要更新模型来解决这个问题。在我的解决方案中,如果UI存在,模型将始终被实例化。
另一个解决方案是检查模型是否已实例化,只检查模型是否正确。