Start Android Service after every 5 minutes

alarmmanager, android, service, timertask

Solution

You do not want to use a `TimerTask` since this depends on your application running continuously. An `AlarmManager` implementation makes it safe for your application to be killed between executions.

Stating that you tried to use `AlarmManager` but did not get the desired result is not a helpful statement, in that it tells no one how to help you to get it right. It would be much more useful to express what happened.

http://web.archive.org/web/20170713001201/http://code4reference.com/2012/07/tutorial-on-android-alarmmanager/ contains what appears to be a useful tutorial on `AlarmManager`. Here are the salient points:

1) Your alarm will cause an `Intent` to fire when it expires. It's up to you to decide what kind of `Intent` and how it should be implemented. The link I provided has a complete example based on a BroadcastReceiver.

2) You can install your alarm with an example such as:

public void setOnetimeTimer(Context context) {
    AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
    Intent intent = new Intent(context, AlarmManagerBroadcastReceiver.class);
    intent.putExtra(ONE_TIME, Boolean.TRUE);
    PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
    am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (1000 * 60 * 5), pi);
}

Problem

I was searching over the internet for last 2 days but I couldn't find any tutorial helpful. I have created a service and I am sending a notification in status bar when the service starts. I want that service to stop after showing the notification and start it again after 5 minutes. Please let me know if it is possible and provide me some helpful tutorials if you have any. I heard of `TimerTask` and `AlarmManager` and I tried to use them as well but I wasn't able to get the desired result. EDIT: I need the service to be started every 5 minutes even if my application is not running.

Original source