The question "what the Context is" is one of the most difficult questions in the Android universe.
+----------------------------+-------------+----------+---------+-----------------+-------------------+
| | Application | Activity | Service | ContentProvider | BroadcastReceiver |
+----------------------------+-------------+----------+---------+-----------------+-------------------+
| Show a Dialog | NO | YES | NO | NO | NO |
| Start an Activity | NO¹ | YES | NO¹ | NO¹ | NO¹ |
| Layout Inflation | NO² | YES | NO² | NO² | NO² |
| Start a Service | YES | YES | YES | YES | YES |
| Bind to a Service | YES | YES | YES | YES | NO |
| Send a Broadcast | YES | YES | YES | YES | YES |
| Register BroadcastReceiver | YES | YES | YES | YES | NO³ |
| Load Resource Values | YES | YES | YES | YES | YES |
+----------------------------+-------------+----------+---------+-----------------+-------------------+
- An application CAN start an Activity from here, but it requires that a new task be created. This may fit specific use cases, but can create non-standard back stack behaviors in your application and is generally not recommended or considered good practice.
- This is legal, but inflation will be done with the default theme for the system on which you are running, not what’s defined in your application.
- Allowed if the receiver is null, which is used for obtaining the current value of a sticky broadcast, on Android 4.2 and above.
