Hy我有一個問題,在服務中設置ServiceUpdateUIListener以更新UI。製作一個新的服務對象並在那裏設置監聽器並將其放在一個意圖中是錯誤的。在基於服務的類中設置監聽器
代碼的來源是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