服务回调到android中的活动

Amb*_*ika 13 service android callback

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

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

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

有人可以解释这个服务回调是如何工作的; 或者使用更简单的机制可以实现的任何东西.

Geo*_*yen 5

这是流程
创建您调用服务的意图.你可以startService()或者BindService()BIND_AUTO_CREATE

一旦服务绑定,它将创建一个与其客户端(即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;
}
Run Code Online (Sandbox Code Playgroud)

一旦它返回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);


    };
Run Code Online (Sandbox Code Playgroud)

现在你有了mService 接口来调用和检索任何服务

  • 如何从服务回复到活动? (3认同)