2016-08-21 3 views
0

그런 서비스가 있다고 가정하고, 모든 틱에서 업데이트 할 TextView를 가지고 있다고 가정 해 봅시다. TextView는 MainActivity에 있습니다. 매 틱마다 TextView를 업데이트하려면 어떻게해야합니까?서비스에서 Countdowntimer로 텍스트를 업데이트하는 방법

public class CountDownTimerService extends Service { 



       public CountDownTimerService() { 
       } 



       @Override 
       public int onStartCommand(Intent intent, int flags, int startId) { 
        CountDownTimer.start(); 
        return START_STICKY; 
       } 



       private CountDownTimer countDownTimer = new CountDownTimerWithPause(300000, 1) { 

        @Override 
        public void onTick(long millisUntilFinished) { 


         /* 

         In this part i need to update text on MainActivity    
         */ 
        } 

        @Override 
        public void onFinish() { 

         Log.i("Timer","Timer finished"); 

        } 



       @Override 
       public IBinder onBind(Intent intent) { 
        return null; 
       } 
      } 
+0

당신은 당신의'CountDownTimer'을 배치, 이러한 작업에 대한 서비스를 필요 없어요 당신의'MainActivity' 대신 – pskink

+0

아니, 사용자가 응용 프로그램 CountDownTimer 작동합니다 :) – jb4

+0

없이 사용자가를 닫을 때 닫을 때 필요 응용 프로그램에서 MainActivity가 더 이상 보이지 않으므로 결과를 보여줄'Activity'가없는 경우 "카운트 다운"이 필요합니까? – pskink

답변

1

당신은 당신의 ActivityService간에 메시지를 전달하기 위해 IntentService을 사용해야합니다. 스스로 할 수는 있지만 EventBus과 같이 매우 효율적이고 사용하기 쉽고 이런 것들을 할 수있는 몇 가지 알려진 라이브러리가 있습니다.

이것은 EventBus의 매우 유용한 튜토리얼입니다. 매우 이해하기 쉽고 간단합니다. 도움이되기를 바랍니다!

https://guides.codepath.com/android/Communicating-with-an-Event-Bus

관련 문제