You're right. You can use a BroadcastReceiver
to check for boot. As for the chosen time, I recommend that you use the AlarmManager
class to have your Service run at a particular time or interval.
ref: http://developer.android.com/reference/android/app/AlarmManager.html