Привязать к сервису и выполнить несколько методов? - PullRequest
0 голосов
/ 10 марта 2011

Хорошо, я понял, что когда вы связываетесь с удаленным Service, он не будет связываться, пока вы не вернетесь из обратного вызова.Мне нужно привязать к сервису и немедленно выполнить какой-то метод из него.Там в любом случае?Мой код выглядит так:

try {
            Parser parser = FrameworkBridge.getFrameworkBridge(this).getParser();
            if (parser != null) {
                for (Article a : parser.getArticlesList("http://www.bt.dk/mecommobile/latest/news_article/%s/%s?output_type=xml", 1379, 20)) {
                    listAdapter.add(a);
                }
            }
        } catch (RemoteException e) {
            Log.d(TAG, "Service communication failure");
        } catch (FrameworkNotInstalledException e) {
            Log.d(TAG, "No framework installed. Install it!");
        }

Здесь FrameworkBridge.getFrameworkBridge(this).getParser() выполняет все процедуры подключения службы и возвращает удаленный интерфейс.Проблема в том, что когда я в коде выше, соединение еще не выполнено, поэтому parser равно null.Как я могу установить соединение перед выходом из кода?

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

onServiceConnected (..) сообщит вам, когда служба подключена и удаленный интерфейс установлен. Не пытайтесь вызывать какие-либо методы в службе, пока это не сработает.

0 голосов
/ 10 марта 2011
mContext.bindService( new Intent("name of the class"), this, Context.BIND_AUTO_CREATE);

приведенный выше вызов метода для копии контекста, который вы сохраняете, должен автоматически связывать сервис, когда вам это нужно. Я не уверен на 100%, но это должно вам помочь.

...