Serviço que executa repetidamente um método, após um período de tempo

Eu quero criar um serviço, que executa um método depois de 10 segundos repetidamente, até que eu pare, mesmo se o aplicativo for fechado. Minha tentativa de código está abaixo

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();
   }

}

E é assim que eu começo o serviço.

@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); 
}

O programa simplesmente pára de funcionar imediatamente; Como posso alterar meu código para obter o comportamento desejado?

questionAnswers(1)

yourAnswerToTheQuestion