mavzey
mavzey

Reputation: 379

difference between timer and alarmmanager

I am a bit confused about Timer and AlarmManager used in Android.

What are the main differences between them?

They are both scheduling a task to run at every A seconds. And what is the main scenario that they are preferred to be used?

For example, for X situation, use Timer but on the other hand, for Y situation, use AlarmManager.

Upvotes: 20

Views: 11122

Answers (2)

Nikolay Elenkov
Nikolay Elenkov

Reputation: 52956

A Timer will start a thread that will keep track of when to start your code. If the device goes asleep, so will the timer thread and your code won't be executed on time. AlarmManager's alarms, on the other hand, are kernel-level. Depending on how you register them, you can request to wake up the device, or execute the next time something wakes up the device. Alarm's are generally preferable and use less resources.

Upvotes: 32

TheWhiteRabbit
TheWhiteRabbit

Reputation: 15768

Timer starts a service it executes code very frequently even thought it wasn't actually doing anything.

Alarmmanager on the other hand will start a Service that runs in the background always, this is what you want to use to schedule your code to run when your app isn't open.

Upvotes: 0

Related Questions