Android SDK 开发之应用程序基础
2010-03-23 04:53:00 来源:WEB开发网一个view的体系通过Activity.setContentView()被放置到一个activity的窗口中去。content view指的是在体系根部的view对象。(详见用户界面文档部分。)
Services
一个service不包含可见的用户界面,而是在后台无限地运行。例如,一个service可以在用户做其他事情时播放背景音乐,或者获取网络数据来供其它activity使用。service继承于Service类。
以一个从一个播放列表中播放歌曲的媒体播放器为例。播放器程序可能有一个或多个activity,使得用户可以选择歌曲和播放它们。然而,音乐的播放本身不能被一个activity来处理,因为用户希望它们离开播放器去做别的事情时音乐仍然在播放。为了使音乐不停播放,播放器activity可以启动一个后台service。系统可以让音乐播放service在启动它的activity离开屏幕时继续运行。
就像activity和其它的component一样,service在应用程序进程的主线程里运行。它们一般会启动另一个线程来做消耗时间的任务(例如音乐播放),从而不会阻塞其它的component和用户界面。(详见Processes and Threads).
Broadcast receivers
一个broadcast receiver是一个接收广播消息并作出回应的component。很多广播消息起源于系统代码 --- 例如,当时区变化、电池电量不足、刚刚拍了一张照片的时候都会产生消息广播。应用程序也可以产生广播消息 --- 例如,通知其它程序某些数据已经下载完成等等。
一个应用程序可以有任意多个broadcast receiver来响应它认为重要的消息。所有的receiver继承于BroadcastReceiver基类。
broadcast receiver没有界面。但是它可以启动一个activity来响应它们收到的信息,或者使用NotificationManager来警告用户。 Notification有很多种:闪烁背光、震动、播放声音等等。一般来说它们在状态栏上有一个图标,在这个图标上显示消息。
Content providers
一个content provider使一个应用程序的某个数据集合可以为其他应用程序所用。这些数据可以存在文件系统中、SOLite数据库中或者其他地方。content provider继承于ContentProvider基类并实现一系列方法来使其他应用程序可以存取它控制的类型的数据。但是应用程序不会直接调用这些方法,而是使用一个ContentResolver对象来进行。一个ContentResolver可以和任何content provider来进行对话。它和content provider合作来管理进程间的通信。详见Content Provider文档。
更多精彩
赞助商链接