http://www.eoeandroid.com/thread-334433-1-1.html
我们都知道,Activity可以与Service进行绑定,绑定过后就可以方便调用Service中的方法了,既然Activity可以调用Service的方法就说明Activity可以向Service中传递信息,那么Service如何向Activity传递信息呢?
一,如果Activity调用Service的方法后能获取返回值,那Activity想什么时候从Service中获取信息就什么时候调用Service中的方法。
但是,这种方法有局限性,因为Activity不知道Service中的信息什么时候更新,不能被动的接收信息。
二,利用广播接收者可以解决方法1的局限性,当Service中信息有更新时就发送一个广播到Activity中,Activity中注册一个广播接收者来接收广播,以此来更新Activity中的信息。但是有个疑问,假设频繁的发送广播会不会资源消耗大。
三,写一个回调接口
具体步骤如下:
1.先写一个用来做回调的接口
public interface ICount {
void count(int val);
}
2.Service类
public class CountService extends Service {
private int val = 0;
public void startCount(ICount iCount){ // 调用CountActivity,因为CountActivity实现了ICount
// do something ...
val ++;
iCount.count(val);
}
}
3.Activity类
注:省略了绑定CountService的代码
public class CountActivity extends Activity implements ICount {
@Override
protected void onCreate(){
// do something ...