Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run a service from 9 AM to 4 PM daily?

Question :1 => I want to run a service from 9 AM to 4 PM daily. I plans two method.Which one is best?

Method 1: Inside Service:(This service initialized at on create of activity when first time application starts)

if (9 AM <=current time<=4 PM)
{
  fetch data from server. 
}

Method 2:

In Activity oncreate use Alarm manager and start a service based on the alarm manager.Then wake up next day and start service.

Which method is best?

Question :2 => How to find a service is running or not programmatically?

like image 550
Ramprasad Avatar asked Nov 13 '22 17:11

Ramprasad


1 Answers

Write a BroadcastReciever to receive the ON_BOOT broadcast (you'll need to add appropriate permission and intent filter to your manifest). The BroadcastReceiver exists only to create a 9 am notification with the Alarm Manager. The scheduled alarm has a PendingIntent which will launch the service. Obviously, set the Alarm to repeat every 24 hours.

When launched, the service simply runs normally until 4 pm, at which point it stops itself.

The service's onStartCommand() method should return the appropriate flags to cause the system to restart it if it crashes or gets killed.

The only thing I can't figure out is how to auto-start the service the first time it's installed. Waiting for the device to be rebooted isn't very practical. When I write apps like this, they're typically combined with an Activity that has controls to start and stop the service.

like image 119
Edward Falk Avatar answered Nov 24 '22 05:11

Edward Falk