rhi*_*nds 39 java android android-listview observer-pattern
我正在尝试创建一个具有ActivityList信息的简单Android应用程序,当应用程序启动时,我计划启动一个将不断计算数据的服务(它将会改变),我希望ActivityList与之同步服务计算应用程序生命周期的数据.
如何设置我的Activity以收听服务?这是解决此问题的最佳方法吗?
例如,如果您想象一个股票价格列表 - 数据将定期更改,并且需要与(在我的情况下)不断计算/获取数据的服务同步.
提前致谢
Com*_*are 94
如何设置我的Activity以收听服务?这是解决此问题的最佳方法吗?
你有三个主要选择,我认为:
轮询.将Activity
定期询问Service
最新数据.恕我直言,这个选项很糟糕,但它肯定是可能的.
回调.根据jax的回答,Activity
注册一个回调对象("观察者")与Service
.在Service
上调用回调方法在数据改变时,这反过来又更新UI.你可以Service
在这里看到一个使用它的例子.
广播Intents
.该Service
播放器Intent
通过sendBroadcast()
对数据的变化.的Activity
寄存器中BroadcastReceiver
使用registerReceiver()
,而且BroadcastReceiver
被通知传入的广播.这会触发Activity
加载来自的最新数据Service
,或者可能只是为了从广播中的附加内容中获取最新数据Intent
.您可以Service
在此处查看使用该技术的示例.