Moin! Ich habe ein Problem, ein Android-Service zu erstellen, in dem eine Aufgabe wiederholt ausgeführt wird. Es soll alle 3 Sekunden die aktuelle Zeit ausgegeben werden.
Allerdings wird die Zeit nur einmal ausgeführt und danach nicht mehr, wo liegt der Fehler?
public class TimerService extends Service {
static final int UPDATE_INTERVAL=3000;
private Timer timer = new Timer();
private Date date;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
repeatJob();
//Here we want this service to continue running until it is explicitly stopped, so return sticky
return START_STICKY;
}
private void repeatJob() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Looper.prepare();
date = new Date();
displayToast(date.toString());
Log.d("repeat", new Date().toString());
Looper.loop();
}
}, 0, UPDATE_INTERVAL);
}
private void displayToast(String text) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
Aufgerufen wird der Service in der Fragment-Activity:
getActivity().startService(new Intent(getActivity().getApplicationContext(), TimerService.class));
Außerdem wüsste ich gern, wie genau ich das Datum wieder in der Fragment-Activity benutzen kann.
Vielen Dank!