Summary:Activity, Intents, and Tasks, Service, Content provider
-Android introduces a richer and more complex approach by supporting multiple application entry points. Android programs should expect the system to start them in different places, depending on where the user is coming from and what she wants to do next
Activity, Intents, and Tasks
-An Android activity is both a unit of user interaction—typically filling the whole screen of an Android mobile device—and a unit of execution
-The unit of communication is the Intent class. An Intent represents an abstract description of a function that one activity requires another activity to perform, such as taking a picture.
public class TestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }-The onCreate method kicks off the life cycle of the Activity
-Each activity in an Android application is largely separate from other activities. The code that implements one activity does not directly call methods in the code that implements another activity.
-Instead of a user interface flow control based on method calls, applications describe an Intent that they want to execute and ask the system to find one that matches.
Service
-The Android Service class is for background tasks that may be active but not visible on the screen.
-The Android platform avoids reclaiming service resources, so once a service starts, it is likely to be available unless memory gets extremely constrained.
Content provider
-Content provider components are roughly analogous to a RESTful web service: you find them using a URI, and the operations of a ContentProvider subclass parallel RESTful web operations such as putting and getting data.
-REST stands for “Representational State Transfer.”
-Content provider components are the heart of the Android content model: by providing a ContentProvider , your application can share data with other applications and manage the data model of an application.
-A companion class, ContentResolver , enables other components in an Android system to find content providers.
-Due to its importance in Android, we provide a brief introduction here to writing a client that uses a content provider
-Activities access specific content provider instances using the ContentResolver class and associated URLs as follows:
// code from an activity method ContentProviderClient client = getContentResolver(). acquireContentProviderClient("content://contacts/people"); ContentProvider provider = client.getLocalContentProvider();-Together with the Activity component of an Android application, content providers provide the necessary parts of a Model-View-Controller (MVC) architecture.