Как получить данные из запущенного сервиса - PullRequest
0 голосов
/ 22 августа 2010

Я только начал использовать сервисы в Android, и у меня есть простой сервис, который опрашивает сервер каждые 20 секунд.

Теперь, как я могу получить эти данные из моей основной деятельности (когда она активна?))?

В качестве альтернативы служба может отправить ее обратно, чтобы выполнить мою основную деятельность (но только если она активна).Я не хочу пробуждать свою активность.

Я прочитал SDK примеров из "Связывания", но я не могу найти пример, как на самом деле получитьчто-то из сервиса.Как запустить и остановить привязку.

Из примера.Если в моей деятельности есть объект «mBoundService», как мне получить данные из сервисного метода, например, например."PollingData ()"?

1 Ответ

3 голосов
/ 22 августа 2010

Мое предложение было бы отправить рассылку с использованием sendBroadcast() из службы, а затем использовать BroadcastReceiver в качестве внутреннего класса в вашей основной деятельности.В зависимости от вашей услуги вы можете просто прикрепить данные к цели, используя putExtras() и getExtras()

Надеюсь, это поможет!

Практический пример:

public class x extends Service {

//Code for your service goes here

   public talk() {
      Intent i = new Intent();
      i.putExtras("Extra data name", "Super secret data");
      i.setAction("FILTER");
      sendBroadcast(i);
   }
}

Тогда в классе служба говорит:

public class y extends Activity {

   //Code for your activity goes here

   BroadcastReceiver br = new BroadcastReceiver() {
      public void onReceive(Intent i) {
         String str = (String) i.getExtras().get("Extra data name").toString();
      }

   OnResume() {
      super.OnResume();
      IntentFilter filt = new IntentFilter("FILTER");
      this.registerReceiver(br, filt);

      //Do your other stuff
   }

   OnPause() {
      super.OnPause();
      unregisterReceiver(br);
   }

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

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