Android java - 如何使Activity等待服务绑定?

时间:2013-07-23 08:36:48

标签: java android service binding

每个示例都有Service bind onStart()和一段时间内从Service调用方法(比如onClick之后)。直到那个onClick服务肯定是绑定的。

我遇到的问题是服务需要一段时间,直到它被绑定并且异步绑定。 因此,如果我开始和Activity需要立即从服务中获取一些数据 - 它崩溃,因为它还没有绑定。所以我需要等待我的活动​​等待它的连接完成。我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以利用pendingList变量来处理这种情况:

ui:repeat

答案 1 :(得分:-1)

我想你想要:http://developer.android.com/guide/components/bound-services.html

在此页面上,您可以找到:

/** Defines callbacks for service binding, passed to bindService() */
private ServiceConnection mConnection = new ServiceConnection() {

    @Override
    public void onServiceConnected(ComponentName className,
            IBinder service) {
        // We've bound to LocalService, cast the IBinder and get LocalService instance
        LocalBinder binder = (LocalBinder) service;
        mService = binder.getService();
        mBound = true;
    }

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

当服务准备就绪时调用onServiceConnected方法,你可以在里面做你的东西(或者使用mBound属性)。

要绑定到您的服务,请使用:

    // Bind to LocalService
    Intent intent = new Intent(this, LocalService.class);
    bindService(intent, mConnection, Context.BIND_AUTO_CREATE);