2013-06-17 2 views
0

Я создаю Android-активность и запускаю сервис из этого действия, используя следующий код. Теперь я хочу отобразить текст «Hello user» из этой службы на экран, что означает, что служба должна запускать этот экран. Я мог бы использовать Toast.maketext.show, но дисплей исчезнет через пару секунд.Как отображать обновления сервисного текста на экране в Android?

new Thread(new Runnable() { 
     @Override 
     public void run() { 
      startAdapterIntent.setAction("START_ADAPTER");  
      startService(startAdapterIntent); 
      System.out.println("Thread2: Adapter Service started.");     
     } 
    }).start(); 

Как это сделать?

Я пытался использовать эту ссылку: Making changes to Main Activity UI from thread in Service

и его (возможно) родительскую ссылку http://developer.android.com/reference/android/app/Service.html раздел "Remote Messenger Service Sample"

При использовании этой второй ссылке, то onServiceConnected часть ServiceConnection Безразлично Кажется, он работает? Пожалуйста помоги. Спасибо.

ответ

0

Изнутри вашей службы необходимо создать обработчик, который может быть запущен с помощью задачи таймера, обработчик должен быть тот, непосредственно ответственным делать связь с текущим активным интерфейсом thread..an например будет

long delay = 3000; 
    long period = 3000; 
    TimerTask mDoTask = new TimerTask() { 
     @Override 
     public void run() { 
      xHandler.sendMessage(Message.obtain(xHandler, SOME_OPERATION)); 
     } 
    }; 
    mT.scheduleAtFixedRate(mDoTask, delay, period); 
Handler xHandler=new Handler(){ 
     @Override 
     public void handleMessage(Message message){ 
      switch (message.what){ 
      case SOME_OPERATION: 
       YourMethod();// in this method you can display your text 
       break; 
      } 
     } 
    }; 
+0

эй akajaymo, определение xHandler должно быть в действии правильно? Теперь, как служба знает об этом обработчике? также я пробовал этот метод, как показано во второй ссылке, но не смог, потому что я не могу правильно связать и поэтому не могу правильно отправлять сообщения. Не могли бы вы правильно разобраться или дать полный (минимально необходимый) рабочий код. – raghu

+0

Нет ... весь этот код работает на Oncreate в вашем сервисе .... в основном псевдо-код будет: создать задачу .. она запускается через несколько минут, секунд и т. Д. ... когда эта задача запускает то, что она делает отправляет сообщение обработчику. Затем обработчик будет работать соответствующим образом и запустить метод. в нашем случае он будет запускать метод YourMethod(), который вы определили и добавили код для отображения сообщения –

Смежные вопросы