首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现接口ServiceConnection

实现接口ServiceConnection
EN

Stack Overflow用户
提问于 2017-02-14 10:25:54
回答 1查看 1K关注 0票数 0

步骤1.实现接口ServiceConnection所需的

代码语言:javascript
复制
public class ServiceBinding<T extends ParentService<T>> implements ServiceConnection {
    public T bindedService;

    @Override
    public void onServiceConnected(ComponentName className, IBinder service) {
        // Warning: Type safety: Unchecked cast from IBinder to ChatService<T>.LocalBinder
        bindedService = ((T.LocalBinder) service).getService();
    }

    @Override
    public void onServiceDisconnected(ComponentName arg0) {
    }
}

Parent-service步骤2.将如下所示:

代码语言:javascript
复制
public abstract class ParentService<T extends ParentService<T>> extends Service {
    public class LocalBinder extends Binder {
        public T getService() {
            return (T) T.this; // Warning: Unchecked cast from ChatService<T> to T
        }
    };
}

问题:这样的解决方案可以接受吗?

如何正确地实现ServiceConnection

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 17:56:03

你可以这样实现-

代码语言:javascript
复制
private ServiceConnection mConnection = new ServiceConnection() {

    @Override
    public void onServiceConnected(ComponentName className, IBinder service) {
        LocalBinder binder = (LocalBinder) service;
        service = binder.getService();
        boundVal = true;
    }

    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        boundVal = false;
    }
};

boundVal是“unbindservice”的触发器。传递以连接为参数的边界。

一旦客户端服务器连接分别建立或断开,则调用onServiceConnected()onServiceDisconnected()。对于onServiceConnected()方法,这将传递一个IBinder对象,其中包含客户端与服务交互所需的信息。干杯!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42223625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档