参加培训班也一个多月了,每天的知识点都挺多的,有些累,但感觉每天的收获都是满满的。高中式的上课模式,老师也很负责人,对我们每一个学员都负责到底,一个都不能少。自己也找了些关于android方面的书籍来看,不过总感觉书上写的终究没有老师讲的全,说的透,所以也就把书摆一边了,等以后真正学完了,自己想继续钻研深造再把书找出来好好研读。在这里我也就说说这一个来月的知识点,也算是给自己一个总结归纳吧。

就说说四大组件吧。

1:Activity

接触android到现在,数出现频率最高的莫过于这个activity了。那什么是activity?它是一个可以与用户交互的屏幕,例如打电话、拍照、地图、日历的界面。

首先来说它的创建。

activity的创建,需三个条件:

(1)、继承activity。

(2)、在清单文件(即Androidmanifest.xml)文件中进行配置。

(3)、要有setContentView()方法。这三个条件缺一不可。

然后再来说说它的生命周期。

生命周期描述的是一个对象从创建(new出来)到死亡的过程中会执行的方法..

一个activity从创建到死亡过程中会执行到的方法有7个。onCreate()、onStart()、onresume()、onpause()、onStop()、onDestory(),而对于onRestart()方法,则有些时候会用到,并不是每次都会调用到这个方法的。那这个方法在什么时候调用呢?

答案就是:在Activity被onStop后,但是没有被onDestroy,在再次启动此Activity时就调用onRestart(而不再调用onCreate)方法。其实这些方法都是两两对应的,onCreate创建与onDestroy销毁;

onStart可见与onStop不可见;onResume可编辑(即焦点)与onPause;。

最后我们来说说activity的启动。

对于activity的启动,可以归结成两种方法。

(1)startActivity()。这个方法就类似于从A界面跳转到B界面,B就不用再返回A界面或是向A界面反馈什么信息了,这也有点单方面付出,有去无回的意思。

(2)startActivityForResult()。而这个方法就类似于从A界面跳转到B界面,然后B界面再跳转回A界面,并向A界面反馈信息,这就有点有来有回,礼尚往来的意思。


2 service

没有界面的后台服务,它可以在后台运行,比如音乐播放、下载可以使用

首先还是来说说service的创建。

对于service的创建,跟activity几乎一样,也是要满足以下几个条件。

(1)继承service

(2)配置文件中配置

然后再来说说它的生命周期。

在Service的生命周期中,被回调的方法比Activity少一些,只有onCreate, onStart, onDestroy,onBind和onUnbind。

最后我们来说说service的启动。

通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的。

(1) 通过startService

Service会经历 onCreate 到onStart,然后处于运行状态,stopService的时候调用onDestroy方法。如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。

(2) 通过bindService

Service会运行onCreate,然后是调用onBind, 这个时候调用者和Service绑定在一起。调用者退出了,Srevice就会调用onUnbind->onDestroyed方法。所谓绑定在一起就共存亡了。调用者也可以通过调用unbindService方法来停止服务,这时候Srevice就会调用onUnbind->onDestroyed方法。

一个原则是Service的onCreate的方法只会被调用一次,就是你无论多少次的startService又bindService,Service只被创建一次。

如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。

如果service运行期间调用了bindService,这时候再调用stopService的话,service是不会调用onDestroy方法的,service就stop不掉了,只能调用UnbindService, service就会被销毁

如果一个service通过startService 被start之后,多次调用startService 的话,service会多次调用onStart方法。多次调用stopService的话,service只会调用一次onDestroyed方法。

如果一个service通过bindService被start之后,多次调用bindService的话,service只会调用一次onBind方法。多次调用unbindService的话会抛出异常。



3、BroadcastReciver

BroadcastReciver广播接收者。

首先来说它的创建。当然也要满足几个条件。

(1)继承BroadcastReciver

(2)在清单文件中进行配置

然后再说说广播的启动。

对于广播的启动,也可以分为两种方式。以其说说是两种启动方式,不如说是两种不同的配置方式。一种是在XML扩展的标记语言)中进行配置,另一种则是在代码中进行配置。两种配置方式虽然不同,但启动的代码都一样sendBroadcast()或是sendOrderBroadcast()。前面的方法是发送无序广播,后面的这种方式则是用来发送有序广播(谁的优先级高,谁就能有限接收到消息,并能对消息进行修改或是阻拦,这样就使得后面的广播接收者接收不到广播。生活中一个很形象的应用就是手机360拦截黑名单中的电话以及短消息的功能)。



4、ContentProvider

首先来说它的创建。以下几个条件也是要满足的。

(1)需要去实现一个类去继承ContentProvider

它主要涉及到的是数据存储,数据的增删改查,那为什么要用ContentProvider呢?

屏蔽数据存储的细节,对用户透明,用户只需要关心操作数据的uri就可以了。

contentprovider 还可以去增删改查本地文件. xml文件的读取,更改


5、说到四大组件,当然还要提一下连接它们的枢纽——Intent

activity、Service 、BroadcastReciver三大组件之间传递消息,分为隐式和显式。

Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封 Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。通过Intent 可以实现各种系统组件的调用与激活



对于android中四大组件大体框架,我也就说这些,真要将它们每个展开来说,那涉及到的知识点跟内容又将很多。所以这次就大体泛泛地归纳下。后面每个组件的细细划分,等后面再慢慢补上。谢谢。




更多相关文章

  1. Android跳转系统界面_大全集
  2. Android串口开发初体验(windows开发环境)
  3. Android音频采集
  4. Android自定义控件系列案例【二】
  5. [置顶] Android(安卓)popwindow和fragment结合 左侧弹出下拉菜单
  6. android HOME、back(按钮、事件)截取获得,综合解决方案和分析,包含an
  7. 基于 Android(安卓)NDK 的学习之旅-----Java 调用C
  8. Android中的.9.png图形的机制及制作和使用方法
  9. Qt for Android(安卓)集成史上第一最全最简单的微信支付

随机推荐

  1. Android之UI- listview特别的属性
  2. 自定义View组件
  3. ARFoundation快速入门-06ARCore设备支持
  4. Android导航栏ActionBar的详细分析
  5. android获取当前正在运行的桌面launcher
  6. eventloop(ril.cpp)函数中定义的管道的作
  7. Windows 下 Charles 如何配置抓取 Androi
  8. 【Android】从无到有:手把手一步步教你使
  9. 第19天android:《android从零开始》视频(6-
  10. Android(安卓)SystemUI 的一些主要操作