Связь от Сервиса к Активности через Bind? - PullRequest
1 голос
/ 29 декабря 2011

Я хочу связаться с моей деятельностью через мой сервис, надеюсь, через Bind. У меня уже есть блайнд, но я могу общаться только из своей деятельности в службу. Каким самым быстрым и простым способом я могу сообщить о своей активности из моего Сервиса?

p.s активность, с которой я хочу связаться, не всегда открыта. Я хочу связаться с ним только когда он открыт

Спасибо

1 Ответ

2 голосов
/ 29 декабря 2011

Один из способов сделать это - трансляции.В вашем сервисе вы можете отправить рассылку следующим образом:

    Intent myBroadcast = new Intent(MYCONSTANT);
    myBroadcast.putExtra("data", "This is a message");
    getApplicationContext().sendBroadcast(myBroadcast);

Тогда в упражнении у вас будет прослушиватель следующим образом:

    // initialize in constructor
    private BroadcastReceiver myReceiver = new MyReceiver();

    // in onCreate, register the receiver
    this.registerReceiver(myReceiver, new IntentFilter(Service.MYCONSTANT));

    // then have a class to receive the broadcast
    private class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
        //do stuff          
        }
}

Существуют и другие способы регистрации получателя.но я считаю этот способ самым простым.

...