I\'m refactoring some code so that my app will pull data from a website once a day at a given time. From my research, it seems like AlarmManager is the most app
You could get AlarmManager to run the Service straight away rather than going through a BroadcastReceiver, if you change your intent like this:
//Change the intent
Intent downloader = new Intent(context, MyService.class);
downloader.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//Change to getService()
PendingIntent pendingIntent = PendingIntent.getService(context, 0, downloader, PendingIntent.FLAG_CANCEL_CURRENT);
This may solve your problem!