Не удается привязать к удаленному сервису - PullRequest
0 голосов
/ 27 мая 2010

после вызова:

result=bindService(new Intent(IUdpListenerService.class.getName()),
            serviceConnection, Context.BIND_AUTO_CREATE);

byt отладчик: возвращаемое значение 'true'

onServiceConnected не вызывается.

* упомянуто, что удаленная службаустанавливается в diffrent apk и запускается командой startService (..)

Okie .. это новая вещь, которую я только что узнал: onServiceConnected запускается, но это требует времени, так что здесь происходит... что, когда я использую экземпляр моего интерфейса - он по-прежнему равен нулю, прежде чем onServiceConnected удастся запустить ... это возможно?-

Ответы [ 2 ]

3 голосов
/ 27 мая 2010

Служба должна иметь <intent-filter> с действием:

    <service android:name=".BshService">
        <intent-filter>
            <action android:name="com.commonsware.android.advservice.IScript" />
        </intent-filter>
    </service>

Затем вы можете использовать форму действия Intent для привязки к нему:

new Intent("com.commonsware.android.advservice.IScript")

или, если ваш клиент имеет класс или интерфейс с именем IScript в пакете com.commonsware.android.advservice:

new Intent(IScript.getName());
1 голос
/ 27 мая 2010

Используемый вами конструктор Intent принимает Action, а не имя класса. Чтобы запустить определенную службу, используйте new Intent(<package context, e.g. this>, IUdpListenerService.class).

Обновление: для запуска Сервиса или Действия в другом пакете используйте setComponent:

new Intent().setComponent(new ComponentName("com.remote", "com.remote.IUdpListenerService"));

(подробнее см. этот вопрос)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...