Broadcast Receiver
Quoting Dianne Hackborn on the Android Developers blog:
When handling a broadcast, the application is given a fixed set of time (currently 10 seconds) in which to do its work.
If it doesn't complete in that time, the application is considered to be misbehaving, and its process immediately tossed into the background state to be killed for memory if needed.
Broadcast receivers are limited by maximum amount of time(10 seconds generally), they have to finish.
Service
If your action takes some longer time (connecting to the internet can take some).More preferrably as the run at background. You definitely should call a service from the receiver or Activity for this purpose. They are last to be killed by android Operating System.
Conclusion:
Generally speaking all the work (fetching, parsing, caching, updating database) which is important to your application should be moved to Service as they are long lived on Android. As you've almost considered that all the social networking sites have there STICKY_SERVICES which does all troublesome work.
BroadcastReceiver are mostly used to start the service. It generally depends upon application. Most of the application uses ConnectivityManager to broadcast whenever network is UP OR DOWN. With the help of these Service are started by BroadcastReceiver.