The common actions you can safely take with a given Context object depends on where it came from originally. Below is a table of the common places an application will receive a Context, and in each case what it is useful for:
Application
Activity
Service
ContentProvider
BroadcastReceiver
Show a Dialog
NO
YES
NO
NO
NO
Start an Activity
NO1
YES
NO1
NO1
NO1
Layout Inflation
NO2
YES
NO2
NO2
NO2
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
NO3
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.
No comments:
Post a Comment