Dienst, der nach einiger Zeit wiederholt eine Methode ausführt

Ich möchte einen Dienst erstellen, der nach immer wieder 10 Sekunden eine Methode ausführt, bis ich ihn beende, auch wenn die App geschlossen ist. Mein versuchte Code ist unten

package com.example.tauben;

import java.util.Timer;
import java.util.TimerTask;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class Reminder extends Service {


    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onCreate() {
        TimerTask task = new TimerTask() {
            public void run(){
                f();
            }
        };

        Timer timer = new Timer();
        timer.scheduleAtFixedRate(task, 0, 10000);
    }

    public void f(){
        Toast t = Toast.makeText(this, "Service is still running", Toast.LENGTH_SHORT);
        t.show();
   }

}

Und so starte ich den Dienst.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(Log_TAG,"_____________RESTART__________");

    Intent i= new Intent(this, Reminder.class);
    startService(i); 
}

Das Programm hört sofort auf zu laufen. Wie kann ich meinen Code ändern, um das gewünschte Verhalten zu erzielen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage