Android - отправка данных из действия в службу - PullRequest
2 голосов
/ 02 августа 2010

У меня есть локальный сервис, который запускается в моей основной деятельности. Служба отвечает за сетевой ввод / вывод. Он также взаимодействует с другими действиями в моем приложении. До этого времени сервис только «предоставлял» данные активности (используя обратные вызовы, а не Intents).

Теперь мне нужно отправить данные (пользовательские объекты) из моей деятельности в службу. Я понимаю один способ сделать это с помощью Intents. Я знаю, что можно получить намерение в сервисе, переопределив onStartCommand() в моем сервисе. Но мне неясно, будет ли onStartCommand вызываться каждый раз, когда я передаю Намерение из моей активности отправки. Может ли услуга также быть BroadcastReceiver? Если да - как?

Спасибо.

1 Ответ

5 голосов
/ 02 августа 2010

Вы можете создать объект BroadcastReceiver в службе и зарегистрировать его для прослушивания любого вещательного события, которое вы хотите.Это примерно так:

BroadcastReceiver mScreenStateReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        //handle the broadcast event here
    }
};

@Override
public void onCreate() {
    super.onCreate();

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_SCREEN_ON);
    registerReceiver(mScreenStateReceiver, filter);

}

@Override
public void onDestroy() {
    super.onDestroy();
    unregisterReceiver(mScreenStateReceiver);
}

С уважением,

...