(Android入门)Android四大组件

     最近在做一个Android的小项目,由于没有太系统学过安卓,只是跟了一门MOOC实现了几个例子,所以在使用的过程中一直会出现一些意想不到的错误。

就从这两天来说,需要实现一个将自己的APP替换掉锁屏的功能,才发现自己连Activity与Service之间通讯这样简单的东西都不了解,甚至于连四大组件各自功能是什么都不太清楚。为了打牢自己的基础,所以决定写下一些自己的理解。


----------------------------------

1.activity   
一个activity代表一个带有用户界面的屏幕


一个程序可以有多个activity分别用于不同的功能,通过Intent进行通讯


2.services
service是一段可以可以隐藏在后台的长生命周期组件。可以远程监控其他运行过程,而且没有用户界面。
service的使用需要两步:1 在androidmainfast中标签中注册相应的服务
                                2 继承Service类
服务不能自己运行,需要通过Contex.startService()或Contex.bindService()启动服务
想停止服务要调用Context.stopService(),此时系统会调用onDestory(),使用此方法启动时,服务首次启动系统先调用服务的onCreate()-->onStart(),如果服务已经启动再次调用只会触发onStart()方法


3.BroadcastReceiver
你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。
听广播Intent步骤:


1 写一个继承BroadCastReceiver的类,重写onReceive()方法,广播接收器仅在它执行这个方法时处于活跃状态。当onReceive()返回后,它即为失活状态,注意:为了保证用户交互过程的流畅,一些费时的操作要放到线程里,如类名SMSBroadcastReceiver


2注册该广播接收者,注册有两种方法程序动态注册和AndroidManifest文件中进行静态注册(可理解为系统中注册)


比如说,我现在提到的替换屏幕解锁,需要在关闭屏幕时候唤醒一个Activity,就需要重新注册:


BroadcastReceiver mMasterResetReceiever = new BroadcastReceiver(){
			
			public void onReceive(Context context,Intent intent){
				try{
					Intent i = new Intent();
					i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
					i.setClass(context,MainActivity.class);
					
					context.startActivity(i);
				}catch(Exception e){
					
				}
			}
		};


4Content Provider


ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。

android中提供ContectResolver与ContentProvider来操作别的应用程序的数据。ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。


提供一个参考博客:http://www.cnblogs.com/pepcod/archive/2013/02/11/2937403.html



你可能感兴趣的:(Android)