Usługa, która wielokrotnie uruchamia metodę, po pewnym czasie

Chcę utworzyć usługę, która uruchamia metodę po 10 sekundach, aż ją zatrzymam, nawet jeśli aplikacja jest zamknięta. Mój próbowany kod jest poniżej

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

}

I tak rozpoczynam usługę.

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

Program przestaje działać natychmiast; Jak mogę zmienić kod, aby uzyskać pożądane zachowanie?

questionAnswers(1)

yourAnswerToTheQuestion