一.Activity组件
1.简介:Activity组件是Android四大组件之一,通常一个Activity相当于一个用户界面,我们可以通过加载布局文件将Android提供的各种控件及自定义控件显示到用户界面,并为其注册监听,来响应用户的即时操作。
2.Activity生命周期方法:
①onCreate():Activity被第一次创建时执行该方法,该方法通常用来做一些初始化操作;
②onStart():当Activity对用户可见时会执行该方法;
③onResume():当Activity开始与用户交互时,会执行该方法;
④onRestart():把Activity从onStop()状态唤醒时,会执行该方法;
⑤onPause():当前Activity启动一个不完全覆盖当前Activity的Activity时,会调用该方法,也就是说该方法是用来过度界面的;
⑥onStop():当前Activity对用户完全不可见的时候,会调用当该方法;
⑦onDestroy():当Activity销毁前会调用该方法
⑧onSaveInstanceState():该方法用于保存Activity的状态信息;
⑨onRestoreInstanceState()该方法用于重新载入Activity的状态信息;
⑩onConfigurationChanged():该方法用于屏幕横竖屏切换时处理相关操作
3.生命周期方法在不同情况的执行顺序:
两个Activity之间:
当显示MainActivity时(执行顺序:①--》②--》③)
如果直接点击后退键,那么(执行顺序:⑤--》⑥--》⑦)即MainActivity从back stack清除,退出app。
如果按下Home键时(执行顺序:⑤--》⑥),再次打开应用(执行顺序:④--》②--》③)
如果需要在MainActivity中打开OtherActivity,那么首先执行MainActivity的⑤---》【再执行OtherActivity的①--》②--》③】--》接着执行MainActivity的⑥,此时如果需要通过后退键返回到MainActivity时,执行OtherActivity的⑤,接着执行MainActivity的④--》②-->③,然后执行OtherActivity的⑥--》⑦
一个Activity横竖屏切换时:
已经显示的Activity切换成横屏时,执行顺序⑧--》⑤--》⑥--》⑦--》①--》②--》⑨--》③;不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次;设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横屏或者竖屏时各只会执行一次;
设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行⑩

二.Service组件
1.简介:Service是一个没有用户界面的长生命周期的程序,主要用于开发那些不需要图形界面的功能,比如:音乐播放器的后台播放功能。
2.Service的生命周期方法:
onCreate():第一次创建服务时执行该方法;
onStartCommand():启动服务时执行该方法;
onBind(Intent intent):通过bindService()方法启动的service执行该方法
onStart():运行服务时执行该方法;
onDestroy():终止服务时执行该方法;
3.生命周期方法在不同情况的执行顺序:
当通过startService()启动Service时: service生命周期方法的执行顺序:onCreate()---》onStartCommand()---》onStart()...---》判断:①重新启动服务;②终止服务;
选择①时,接着执行2.onStartCommand()---》3.onStart()....
选择②时,执行4.onDestroy()方法终止服务;
当通过bindService()启动Service时:Service生命周期方法的执行顺序:onCreate()---》onBind(),不执行onStartCommand()和onStart()

三.BroadcastReceiver组件
1.简介:Android系统运行后通常会发出各种广播,比如低电量,时区改变,修改语言选项等等的系统操作都会使得系统发出对应的广播,而BroadcastReceiver通常用于处理系统的广播并作出相应处理。同时也可以定制应用的广播并将信息反馈给用户
2.生命周期方法:
onReceive():当广播发送到接受者时执行该方法,可以通过该方法查看广播的数据

四.ContentProvider组件
1.简介:这个类主要是对Android系统中进行共享的数据进行包装,并提供一组统一的访问接口供其他程序调用,开发过程中,我们只需要继承这个类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。
2.ContentProvider的生命周期方法:
onCreate():第一次创建ContentProvider的时候执行该方法

五.Fragment控件:
1.简介:Fragment与Activity关系紧密,通常我们在一个Activity中放置多个Fragment来提高界面的可操作性,尽管它们拥有类似的生命周期方法和执行顺序,但Fragment是一个控件,而Activity是一个组件。因此,对于Fragment来说,主要还是为了实现在大屏幕设备上动态的和更灵活的UI设计,这也优化了Activity面对的界面适配问题。
2.Fragment的生命周期方法:
①onAttach():在Activity与Fragment关联之后执行该方法;
②onCreate():Fragment第一次创建时执行该方法;
③onCreateView():在Fragment加载布局文件,或者创建视图的时候执行该方法;
④onActivityCreated():在Activity的onCreate()方法执行完之后执行该方法;
⑤onStart():当Fragment对用户可见时执行该方法;
⑥onResume():当Fragment开始运行,并可以和用户交互时执行该方法;
⑦onPause();当Fragment对用户即将不可见时执行该方法;
⑧onStop():当Fragment完全不可见时执行该方法;
⑨onDestroy():
⑩onDestroyView():会使onCreateView()中创建的视图与当前Fragment相分离,并清除该视图;
onDetach():在Activity与Fragment解除关联后执行该方法;
3.Fragment的生命周期方法执行顺序:
在Activity打开某个Fragment时,Fragment生命周期方法执行顺序为①---》②---》③---》④---》⑤---》⑥{此时当点击后退键时,执行顺序为:⑦---》⑧---》⑩---》⑨---》onDetach();当点Home键时执行的顺序为⑦---》⑧,当返回到app时,执行顺序为⑤---》⑥}

六.AsyncTask类
1.简介:Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理,目的都是为了不阻塞主线程,处理后台的比较耗时的任务。使得用户在使用过程中不会出现长时间等待界面响应及卡顿的现象,从而达到比较高的用户体验。
2.AsyncTask中重要的的方法:
①onPreExecute():当异步任务执行之前开始执行此方法,可以在这里显示进度对话框;
②doInBackground():此方法在后台线程执行,完成异步任务的主要工作,通常需要较长的时间。在执行过程中可以通过调用publishProgress()来更新任务的进度;
③onProgressUpdate():此方法在主线程中执行,用于显示任务执行的进度;
④onPostExecute():此方法在主线程中执行,异步任务执行的结果作为此方法的参数返回;
3.AsyncTask方法执行顺序:①---》②---》③---》④

*备注:以上内容涉及的所有方法为了便于阅读,都省去了参数;

android开发之路12(android四大组件&Fragment&AsyncTask类)的更多相关文章

  1. Intent的七大组件——Android开发之路5

    ------Intent------ Android中三个核心组件——Activity.Services.BroadCastProvider都是通过Intent传递参数. startActivity( ...

  2. android开发之路04(初级android工程师必会,你懂得!)

    Android初级Android工程师重点掌握内容如下: 1.Android开发基础: ①UI界面设计: ②SQLite数据库: ③android四大组件: ④android网络编程: ⑤androi ...

  3. android开发之路11(用SharedPreferences存储数据)

    Android平台给我们提供了一个SharedPreferences类,实际上SharedPreferences处理的就是一个key-value(键值对),它是 一个轻量级的存储类,特别适合用于保存软 ...

  4. android开发之路10(文件的读写)

    1.安卓中文件的数据存储实例(将文件保存到手机自带存储空间中): ①MainActivity.java public class MainActivity extends Activity imple ...

  5. android开发之路05

    一.获取res资源文件下values中内容的方式: 1.string.xml文件-------------------------------> 取值方式:getResource().getSt ...

  6. android开发之路02(浅谈BroadcastReceiver)

    一.BroadcastReceiver (广播接收者)的作用是用来接收来自系统和应用中的广播.应用如下: 1.开机完成后系统会产生一条广播----->接收到这条广播就能实现开机启动服务的功能: ...

  7. Android开发之Intent.Action Android中Intent的各种常见作用

    1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开始.比较常用. Input:nothing Outpu ...

  8. 菜单(Menu)的三中创建方式——Android开发之路2

    菜单的三种创建方式 一.OptionsMenu---选项菜单 Android应用中的菜单默认是隐藏的,只有当用户点击手机上的MENU键,系统才会显示菜单.这种菜单叫做选项菜单(Options Menu ...

  9. android开发之路09(浅谈SQLite数据库01)

    1.SQLite数据库: SQLite 是一个开源的嵌入式关系数据库,实现自包容.零配置.支持事务的SQL数据库引擎. 其特点是高度便携.使 用方便.结构紧凑.高效.可靠. 与其他数据库管理系统不同, ...

随机推荐

  1. MAT(3)获取dump文件

    方式一:添加启动参数 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=E:\Java\dump 生成的文件例如:java_pid2080.hprof ...

  2. CString的GetBuffer用法,GetBuffer本质,GetBuffer常见问题解决方法

    一.函数原型 CString::GetBuffer LPTSTR GetBuffer( int nMinBufLength ); throw( CMemoryException ); Return V ...

  3. iOS多线程总结

    1.不要同时开太多的线程(1~3条线程即可,不要超过5条) 2.线程概念 1> 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 2> 子线程 : 后台线程,异步线程 3.不要 ...

  4. F5 负载均衡 相关资源

    F5负载均衡之检查命令的说明http://net.zdnet.com.cn/network_security_zone/2010/0505/1730942.shtml F5培训http://wenku ...

  5. Linux 下安装android

    主要参考了这篇文章 http://segmentfault.com/a/1190000003069062#articleHeader2 这里提到了“unable to run mksdcard sdk ...

  6. Redis本地环境搭建

    Windows 下环境搭建 1. 设置hosts set duapphosts=127.0.0.1 sqld.duapp.com set redisduapphosts=127.0.0.1 redis ...

  7. 转载:linux vi命令详解

    转自:http://www.cnblogs.com/mahang/archive/2011/09/01/2161672.html 刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编 ...

  8. 重载PostNcDestroy()函数做一些清理工作

    转自:http://zhidao.baidu.com/link?url=W-OOWnvUx58w1esKfRAMtvbzBhjfyKodhk8j2DcTtlcDKAOy8sBNW-8Ey2RAhc0l ...

  9. HTML5 progress元素的样式控制、兼容与实例

    一.progress元素基本了解 基本UIprogress元素属于HTML5家族,指进度条.IE10+以及其他靠谱浏览器都支持.如下简单code: <progress>o(︶︿︶)o< ...

  10. 推荐系统之基于二部图的个性化推荐系统原理及C++实现

    1.引言 许多网站都喜欢让用户点击“喜欢/不喜欢”,“顶/反对”,也正是这种很简单的信息也可以利用起来对用户进行推荐!这里介绍一种基于网络结构的推荐系统! 由于推荐系统深深植根于互联网,用户与用户之间 ...