service可以作为后台的服务,执行持续的任务,比如从后台不断获取数据然后显示到图标上,客户可以在打开图表的时候可以第一时间看到过去一段时间的数据。这里面就是设计到service与activity交互的问题。因为service一直是不被杀死的,但是要想一直执行的话,应该处在一个死循环里面,用于监听数据,如果从服务器获取到数据了,就可以通过handler直接发送到activity里面,由activity里面的handlermessage刷新数据。由于service与activity已经不处在同一个thread里面,所以涉及到跨线程的通信。当然你可以用类似全局变量,或者广播的方式来通信。但是最佳的实践确是handler。现在关键问题是service如何获取到activity的实例。由于有人会说,可以用个静态变量,当做全局变量这么去做,但是这样一是消耗内存,并且也是不安全的。我觉得比较合适的方式是,通过bindservice中间的serviceconnection回调的时候获取到service的实例,有了实例就可以把与service交互了。