(Android入门)Android四大组件

博主在进行Android项目开发时遇到困难,发现对于Activity与Service的通讯以及四大组件的理解不足。因此,决定深入探讨,特别讲解了Content Provider,它是Android中用于跨应用数据共享的机制,通过URI来管理和操作数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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


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

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


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


2.services
service是一段可以可以隐藏在后台的长生命周期组件。可以远程监控其他运行过程,而且没有用户界面。
service的使用需要两步:1 在androidmainfast中<application>标签中注册相应的服务
                                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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值