android中活动的服务回调

android中活动的服务回调,android,callback,service,Android,Callback,Service,我有一个正在运行的后台服务和一个与该服务交互的客户端 当客户端请求某些操作时,服务将执行该操作,并将结果发送回活动(客户端) 我知道如何在活动中调用服务方法,并且使用回调可以实现我想要做的事情。但我无法理解Api演示(remoteservice)中提供的回调机制和代码示例 有人能解释一下这个服务回调是如何工作的吗;或者使用更简单的机制可以实现的任何事情。以下是流程 创建调用服务的意图。您可以使用BIND\u AUTO\u CREATE 一旦该服务被绑定,它将创建一个隧道来与it客户端进行对话,这

我有一个正在运行的后台服务和一个与该服务交互的客户端

当客户端请求某些操作时,服务将执行该操作,并将结果发送回活动(客户端)

我知道如何在活动中调用服务方法,并且使用回调可以实现我想要做的事情。但我无法理解Api演示(remoteservice)中提供的回调机制和代码示例

有人能解释一下这个服务回调是如何工作的吗;或者使用更简单的机制可以实现的任何事情。

以下是流程
创建调用服务的意图。您可以使用
BIND\u AUTO\u CREATE

一旦该服务被绑定,它将创建一个隧道来与it客户端进行对话,这是
IBinder
接口。这将由AIDL接口实现使用,并在中返回
IBinder

private final MyServiceInterface.Stub mBinder = new MyServiceInterface.Stub() {
    public int getNumber() {
        return new Random().nextInt(100);
    }
};

public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    Toast.makeText(this, "Service OnBind()", Toast.LENGTH_LONG).show();
    return mBinder;
}
一旦它返回
mBinder
,您在客户机中创建的
ServiceConnection
将被回调,您将使用此命令获得服务接口

           mConnection = new ServiceConnection() {

        public void onServiceDisconnected(ComponentName name) {
            // TODO Auto-generated method stub

        }

        public void onServiceConnected(ComponentName name, IBinder service) {
            // TODO Auto-generated method stub

            mService = MyServiceInterface.Stub.asInterface(service);


    };

现在,您有了
mService
接口,可以从该接口调用和检索任何服务

如何从服务获取对活动的回调?