android - android 中具有有限服务的 fragment

标签 android service

我有一个包含 3 个 FragmentsActivity。我有一个有界的 Service

是不是每次调用

getActivity(). bindService(intent, mConnection, Context.BIND_AUTO_CREATE);

在每个 Fragment 中将导致 3 个客户端绑定(bind)到有界 Service

最佳答案

我认为它会为您提供三个有限服务客户端。

你可以做些什么来确保你只有一个客户服务是

重写 bindService 方法,如下所示。注意:有了这个,您的 Activity 只有一个有界服务。

private IBinder binder;
private ComponentName name;
private ArrayList<ServiceConnection> conns = new ArrayList<ServiceConnection>();
@Override
    public boolean bindService(Intent service, final ServiceConnection conn, int flags)    {
conns.add(conn);
        if(binder != null)
            conn.onServiceConnected(name, binder);
        return super.bindService(service, new ServiceConnection() {

            @Override
            public void onServiceDisconnected(ComponentName arg0) {
for(ServiceConnection con : conns)
con.onServiceDisconnected(arg0);
            }

            @Override
            public void onServiceConnected(ComponentName arg0, IBinder arg1) {
                name = arg0;
                binder = arg1;
                conn.onServiceConnected(arg0, arg1);
            }
        }, flags);
    }

关于android - android 中具有有限服务的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669494/

相关文章:

java - 如何安排任务以使其在android中的任何条件下执行

java - ESB 服务客户端创建

asp.net - 使用 jQuery 通过 GET 方法调用 ASP.NET Web 服务函数

android - 以编程方式在 Android 上打开应用程序权限?

android - 从另一个类 android 开始 fragment

android - 有没有办法检查哪个 list 导入了一些使用权限?

python - 如何在 Ubuntu 中查看 systemd 服务日志

java - 使用 https(SSL 的自签名证书)连接到 VPS 上的解析服务器

Android:为什么这个对话框弹出两次?

android - 如果 Android 服务崩溃,它会导致运行它的应用程序崩溃吗?