Hy 서비스를 ServiceUpdateUIListener로 설정하여 UI를 업데이트하는 데 문제가 있습니다. 새로운 Service 객체를 만들고 거기에 청취자를 설정하여 의도에 넣는 것은 잘못입니다.서비스 기반 클래스의 리스너 설정
코드 소스는 http://developerlife.com/tutorials/?p=356입니다. 거기에 리스너를 설정하고 서비스를 시작하는 방법을 찾을 수 없습니다.
콜링 :
TimerService service = new TimerService();
TimerService.setUpdateListener(new ServiceUpdateUIListener() {
@Override
public void updateUI(String time) {
clock.setText(time);
}
});
Intent i = new Intent(Timer.this,service.class); //service cannot be resolved to a type
i.putExtra("ms", ms);
startService(i);
서비스 :
public class TimerService extends Service{
CountDownTimer timer;
Chronometer clock;
public static ServiceUpdateUIListener UI_UPDATE_LISTENER;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
int ms = intent.getIntExtra("ms", 0);
timer = new CountDownTimer(ms,1000){
@Override
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished/1000) % 60 ;
int minutes = (int) ((millisUntilFinished/(1000*60)) % 60);
int hours = (int) ((millisUntilFinished/(1000*60*60)) % 24);
clock.setText(String.format("%02d:%02d:%02d", hours,minutes,seconds));
Log.e("Timer", String.valueOf(millisUntilFinished));
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
}.start();
super.onStart(intent, startId);
}
public static void setUpdateListener(ServiceUpdateUIListener l) {
UI_UPDATE_LISTENER = l;
}
질문이 훨씬 분명하지 않다 ...! – Noby