0

我计划编写一个 IntentService 来下载新包(应用程序的新项目)。我唯一的问题是,当我广播下载结束时,如果应用程序正在运行,我必须更新内存模型。如果它没有运行,则无需执行任何操作,因为应用程序将在启动时从数据库创建内存模型。在性能方面,UI 是从内存中工作的,而不是从数据库中工作的。知道我应该如何接近,还是我完全走错了路?

编辑:为了清楚起见:假设我有 MyIntentService,它将新行插入到我的数据库中,然后触发由 MyBroadcastReceiver 接收的 BroadcastIntent。现在我面临的问题是,MyBroadcastReceiver 的实例应该以某种方式通知 Model 类,它是一个单例。问题是,这个模型(单例)实例只有在我的应用程序正在运行时才应该可用,因为它只被 UI 使用(只使用 DB 会很慢)。如果没有 UI 可以使用它,则无需通知我的模型实例。我不能让我的模型成为广播接收器,因为它们随时都会启动,而且它们也不能是单例的(据我所知)。

4

2 回答 2

0

回答和说一些只有你的话没有代码的东西有点困难。可能会在您的项目中创建额外的独立部分,这些部分将从 DB 初始化/创建您的“内存模型”,这部分应该是不依赖的,因此您可以在启动活动/应用程序期间或广播时随时随地使用它。

于 2011-07-25T18:53:06.907 回答
0

我通过将 UI 注册为广播接收器并根据需要更新模型来解决这个问题。在我的解决方案中,如果 UI 存在,模型将始终被实例化。

另一种解决方案是检查模型是否已实例化,如果是则仅继续。

于 2011-07-26T08:59:48.807 回答