In general it is discouraged to start an activity from a background service or a broadcast receiver. This is because it will be jarring to the user that is looking at a screen and all of a sudden an activity pops up. The HIGHLY recommended method is to use the notification manager.
However this is possible as Helio pointed out in the earlier answer.
The relevent flags you want to read up on are:
flag_from_background
flag_activity_new_task
flag_activity_singletop
There is an additional consideration on a broadcast receiver. Here is what the documentation says on a broadcast receiver
This has important repercussions to what you can do in an onReceive(Context, Intent) implementation: anything that requires asynchronous operation is not available, because you will need to return from the function to handle the asynchronous operation, but at that point the BroadcastReceiver is no longer active and thus the system is free to kill its process before the asynchronous operation completes.
However it is entirely legitimate to do a "startService" in the broadcast receiver. This means the broadcast receiver is hanging long enough to start things. By extension you can think that the actvity will be started as well.
Here is some research on Broadcast Receivers and Long Running Sevices