- Forum-Beiträge: 4
24.05.2014, 15:33:39 via Website
24.05.2014 15:33:39 via Website
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!
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.