android四大基本组件分别是:
1、活动(activity);
2、服务(service);
3、内容提供者(content provider);
4、广播接收器(broadcastreceiver)。
activity
答:应用程序中,一个activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。一般所指的活动是用户界面。
一个应用程序可能有一个或者以上的活动存在,每个活动也都会有自己的view。
service
答:一个service 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。
服务是在背景长时间运行的应用组件,不和用户直接进行互动。
broadcastreceiver
答:广播接收器。
android四大组件的详细讲解。
android应用程序由一些零散的有联系的组件组;activities(活动)应用程序的显示层;services(服务)android应用程序中;content(内容)提供共享的数据存储;intents(意图)简单的消息传递框架;broadcastreceivers(广播接收器;notifications(通知)用户通知的框架;一、activity详解act
android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起。在manifest中,描述了每一个组件以及组件的作用,其中有6个组件,它们是android应用程序的基石:
activities(活动)应用程序的显示层。每一个画面对应于你的应用程序,将会是activity类的扩展。activity使用views去构建ui来显示信息和响应用户的行为。
就桌面开发而言,一个activity相当于一张form。你在这章中将会学习到更多关于activities。
services(服务):android应用程序中不可见的“工人”。service组件运行时不可见,但它负责更新的数据源和可见的activity,以及触发通知。
它们常用来执行一些需要持续运行的处理,当你的activity已经不处于激活状态或不可见。你将在第8章学习怎样创建service。
content(内容):提供共享的数据存储。content provider(内容提供器)用来管理和共享应用程序的数据库。
在应用程序间,content provider是共享数据的首选方式。这意味着,你可以配置自己的content provider去存取其他的应用程序或者通过其他应用程序暴露的content provider去存取它们的数据。android设备本身包含了几个content provider来访问像联系人信息等有用的数据库。
你将在第6章学习怎样创建和使用content provider。
intents(意图)简单的消息传递框架。使用intent,你可以在整个系统内广播消息或者给特定的activity或者服务来执行你的行为意图。系统会决定那个(些)目标来执行适当的行为。
broadcast receivers(广播接收器) intent广播的“消费者”。通过创建和注册一个broadcast receiver,应用程序可以监听符合特定条件的广播的intent。broadcast receiver 会自动的启动你的android应用程序去响应新来的intent。
broadcast receiver是事件驱动程序的理想手段。
notifications(通知) 用户通知的框架。notification用来在不需要焦点或不中断它们当前activity的情况下提示用户。它们是service或 broadcast receiver获得用户注意的首选方式。
例如,当设备收到文本信息或外部来电时,它通过闪光,发声,显示图标或显示对话框信息来提醒你。在第8章里,你可以使用notification来触发这些事件。
一、activity详解 activty的生命周期的也就是它所在进程的生命周期。
一个activity的启动顺序:
oncreate()—onstart()—onresume()
当另一个activity启动时:
第一个activity onpause()—第二个activityoncreate()—onstart()—onresume()
—>第一个activityonstop()
当返回到第一个activity时:
第二个activity onpause()—第一个activity onrestart()—onstart()—onresume()
—>第二个activity onstop()—ondestroy()
一个activity的销毁顺序:
情况一)onpause()—
情况二)onpause()—onstop()—
情况三)onpause()—onstop()—ondestroy()
每一个活动( activity )都处于某一个状态,对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。
但是当一个活动的状态发生改变的时候,开发者可以通过调用 onxx() 的方法获取到相关的通知信息。
在实现 activity 类的时候,通过覆盖( override )这些方法即可在你需要处理的时候来调用。
一、 oncreate :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。
oncreate 方法有一个参数,该参数可以为空( null ),也可以是之前调用。
ons**einstancestate ()方法保存的状态信息。
二、 onstart :该方法的触发表示所属活动将被展现给用户。
三、 onresume :当一个活动和用户发生交互的时候,触发该方法。
四、 onpause:当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等。
五、 onstop :当一个活动不再需要展示给用户的时候,触发该方法。如果内存紧张,系统会直接结束这个活动,而不会触发 onstop 方法。
所以保存状态信息是应该在onpause时做,而不是onstop时做。活动如果没有在前台运行,都将被停止或者linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。
在一些情况下,onpause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息。
六、onrestart :当处于停止状态的活动需要再次展现给用户的时候,触发该方法。
七、 ondestroy:当活动销毁的时候,触发该方法。和 onstop 方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法。
ons**einstancestate :系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。
通常情况下,开发者不需要重写覆盖该方法,在默认的实现中,已经提供了自动保存活动所涉及到的用户界面组件的所有状态信息。
activity栈。
上面提到开发者是无法控制activity的状态的,那activity的状态又是按照何种逻辑来。
运作的呢?这就要知道。
activity 栈。
每个activity的状态是由它在activity栈(是一个后进先出lifo,包含所有正在运行activity的队列)中的位置决定的。
当一个新的activity启动时,当前的活动的activity将会移到activity栈的顶部。
如果用户使用后退按钮返回的话,或者前台的activity结束,活动的activity就会被移出栈消亡,而在栈上的上一个活动的activity将会移上来并变为活动状态。如下图所示:
一个应用程序的优先级是受最高优先级的activity影响的。当决定某个应用程序是否要终结去释放资源,android内存管理使用栈来决定基于activity的应用程序的优先级。 activity状态。
一般认为activity有以下四种状态:
活动的:当一个activity在栈顶,它是可视的、有焦点、可接受用户输入的。android试图尽最大可能保持它活动状态,杀死其它activity来确保当前活动activity有足够的资源可使用。
当另外一个activity被激活,这个将会被暂停。
暂停:在很多情况下,你的activity可视但是它没有焦点,换句话说它被暂停了。有可能原因是一个透明或者非全屏的activity被激活。
当被暂停,一个activity仍会当成活动状态,只不过是不可以接受用户输入。在极特殊的情况下,android将会杀死一个暂停的activity来为活动的activity提供充足的资源。当一个activity变为完全隐藏,它将会变成停止。
停止:当一个activity不是可视的,它“停止”了。这个activity将仍然在内存中保存它所有的状态和会员信息。
尽管如此,当其它地方需要内存时,它将是最有可能被释放资源的。当一个activity停止后,一个很重要的步骤是要保存数据和当前ui状态。一旦一个activity
退出或关闭了,它将变为待用状态。
待用: 在一个activity被杀死后和被装在前,它是待用状态的。待用acitivity被移除activity栈,并且需要在显示和可用之前重新启动它。
activity的四种加载模式。
在的多activity开发中,activity之间的跳转可能需要有多种方式,有时是普通的生成一个新实例,有时希望跳转到原来某个activity实例,而不是生成大量的重复的activity。加载模式便是决定以哪种方式启动一个跳转到原来某个activity实例。 在android里,有4种activity的启动模式,分别为:
standard: 标准模式,一调用startactivity()方法就会产生一个新的实例。
singletop: 如果已经有一个实例位于activity栈的顶部时,就不产生新的实例,而只是调用activity中的newinstance()方法。如果不位于栈顶,会产生一个新的实例。
android笔记
button跳转页面。package import import import import import public class demomain extends activity 在中增加。设置背景。在res里建drawable的文件夹,把背景 放到文件夹中,在布局中输入android bac...
android笔记
code jdk net io 本地文件。j a class jvm dvmc c j a 900万人 j a android应用开发 app android系统开发。android移植开发。flv rmvb mp4 3gp 1.android源码,修改libraries,c 写插件 flv j a...
android笔记
android中调用activity的常用的纯背景颜色有 如图 开始动画 帧动画 第一种方式启动帧动画 在activity启动时会自动运行动画 animationdrawable ad imageview iv imageview findviewbyid animationdrawable 当一个...