如何从后台服务更新安卓活动中的信息
我正在尝试创建一个简单的Android应用程序,该应用程序具有一个信息的ActivityList,当应用程序启动时,我计划启动一个服务,该服务将不断计算数据(它将不断变化),并且我希望ActivityList与服务在应用程序的生命周期内计算的数据同步。
如何将我的活动设置为收听服务?这是解决这个问题的最佳方法吗?
例如,如果您想象一个股票价格列表 - 数据将定期更改,并且需要与不断计算/获取数据的(在我的情况下)服务同步。
提前致谢
我正在尝试创建一个简单的Android应用程序,该应用程序具有一个信息的ActivityList,当应用程序启动时,我计划启动一个服务,该服务将不断计算数据(它将不断变化),并且我希望ActivityList与服务在应用程序的生命周期内计算的数据同步。
如何将我的活动设置为收听服务?这是解决这个问题的最佳方法吗?
例如,如果您想象一个股票价格列表 - 数据将定期更改,并且需要与不断计算/获取数据的(在我的情况下)服务同步。
提前致谢
如何将我的活动设置为收听服务?这是解决这个问题的最佳方法吗?
在我看来,您有三个主要选择:
投票。定期询问 提供最新数据。恕我直言,这个选项很糟糕,但它肯定是可能的。Activity
Service
回调。根据 jax 的应答,注册一个回调对象(“观察者”)。.当数据更改时,它将在回调上调用一个方法,这反过来又会更新 UI。您可以在此处查看使用它的示例。Activity
Service
Service
Service
广播。广播数据更改的过孔。注册一个 using ,并通知传入的广播。这将触发 从 加载最新数据,或者可能只是为了从广播中的附加内容中获取最新数据。您可以在此处查看使用该技术的示例。Intents
Service
Intent
sendBroadcast()
Activity
BroadcastReceiver
registerReceiver()
BroadcastReceiver
Activity
Service
Intent
Service
这听起来像是观察者模式的一个很好的候选者。基本上,您的活动(观察者)将在后台服务(可观察)中注册自己,您可以从活动中推送或提取数据。在这种情况下,您的观察者将是您的活动,可观察对象将是您的服务。
如果您对设计模式一无所知,请购买“Head First Design Patterns”,它很容易阅读,并且充满了很棒的信息。
PS:我现在正在阅读。