1. Android App的生命周期;

2. Application的生命周期;

3. Activity的生命周期;

3.1 Fragment的生命周期;

4. Service的生命周期;
5. BroadcastReciver的生命周期;
6. ContentProvider的生命周期;

7. View的生命周期;

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

2. Application的生命周期;

public class App extends Application {

    @Override
public void onCreate() {
// 程序创建的时候执行
Log.d(TAG, "onCreate");
super.onCreate();
}
@Override
public void onTerminate() {
// 程序终止的时候执行
Log.d(TAG, "onTerminate");
super.onTerminate();
}
@Override
public void onLowMemory() {
// 低内存的时候执行, 资源匮乏的时候
Log.d(TAG, "onLowMemory");
super.onLowMemory();
}
@Override
public void onTrimMemory(int level) {
// 程序在内存清理的时候执行
Log.d(TAG, "onTrimMemory");
super.onTrimMemory(level);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
Log.d(TAG, "onConfigurationChanged");
super.onConfigurationChanged(newConfig);
} }

onTerminate 有点特殊,不管我怎么试都不会被调用, 下面是网上的一种解释

onTerminate 当终止应用程序对象时调用,不保证一定被调用,当程序是被内核终止以便为其他应用程序释放资源,那么将不会提醒,并且不调用应用程序的对象的onTerminate方法而直接终止进程

还是没有说明什么时候会被调用, 读源码去

95    /**
96 * This method is for use in emulated process environments. It will
97 * never be called on a production Android device, where processes are
98 * removed by simply killing them; no user code (including this callback)
99 * is executed when doing so.
100 */
101 public void onTerminate() {
102 }
103

就是这样了.

3. Activity的生命周期;

这个东西都说烂了, 一张图说明一切

文章请读: Activity生命周期回顾

以下是log

11-06 22:49:27.959    2872-2872/? D/CARLOZ123-MyApplication﹕ onCreate
11-06 22:49:28.176 2872-2872/? D/CARLOZ123-MainActivity﹕ onCreate
11-06 22:49:28.237 2872-2872/? D/CARLOZ123-MainActivity﹕ onStart
11-06 22:49:28.270 2872-2872/? D/CARLOZ123-MainActivity﹕ onResume
转屏
11-06 22:49:43.759 2872-2872/? D/CARLOZ123-MyApplication﹕ onConfigurationChanged
11-06 22:49:43.770 2872-2872/? D/CARLOZ123-MainActivity﹕ onPause
11-06 22:49:43.771 2872-2872/? D/CARLOZ123-MainActivity﹕ onSaveInstanceState protected
11-06 22:49:43.771 2872-2872/? D/CARLOZ123-MainActivity﹕ onStop
11-06 22:49:43.771 2872-2872/? D/CARLOZ123-MainActivity﹕ onDestroy
11-06 22:49:43.839 2872-2872/? D/CARLOZ123-MainActivity﹕ onCreate
11-06 22:49:43.848 2872-2872/? D/CARLOZ123-MainActivity﹕ onStart
11-06 22:49:43.849 2872-2872/? D/CARLOZ123-MainActivity﹕ onRestoreInstanceState protected
11-06 22:49:43.849 2872-2872/? D/CARLOZ123-MainActivity﹕ onResume
按返回键, 自动转为竖屏
11-06 22:50:04.000 2872-2872/? D/CARLOZ123-MainActivity﹕ onPause
11-06 22:50:04.238 2872-2872/? D/CARLOZ123-MyApplication﹕ onConfigurationChanged
11-06 22:50:04.527 2872-2872/? D/CARLOZ123-MyApplication﹕ onTrimMemory
11-06 22:50:04.527 2872-2872/? D/CARLOZ123-MainActivity﹕ onStop
11-06 22:50:04.527 2872-2872/? D/CARLOZ123-MainActivity﹕ onDestroy

3.1 Fragment的生命周期;

参考: Android Fragment基础及使用

01-02 13:35:23.059: D/LifeCycleActivity-Fragment(28235): onCreate
01-02 13:35:23.079: D/FragmentA(28235): onAttach
01-02 13:35:23.079: D/FragmentA(28235): onCreate
01-02 13:35:23.089: D/FragmentA(28235): onCreateView
01-02 13:35:23.089: D/FragmentA(28235): onActivityCreated
01-02 13:35:23.089: D/FragmentA(28235): onStart
01-02 13:35:23.089: D/LifeCycleActivity-Fragment(28235): onStart
01-02 13:35:23.089: D/LifeCycleActivity-Fragment(28235): onResume
01-02 13:35:23.089: D/FragmentA(28235): onResume
01-02 13:43:12.629: D/LifeCycleActivity-Fragment(28235): onPause
01-02 13:43:12.629: D/FragmentA(28235): onPause
01-02 13:43:12.939: D/LifeCycleActivity-Fragment(28235): onStop
01-02 13:43:12.939: D/FragmentA(28235): onStop
01-02 13:43:12.939: D/LifeCycleActivity-Fragment(28235): onDestroy
01-02 13:43:12.939: D/FragmentA(28235): onDestroyView
01-02 13:43:12.939: D/FragmentA(28235): onDestroy
01-02 13:43:12.939: D/FragmentA(28235): onDetach

4. Service的生命周期;

参考: http://www.cnblogs.com/mengdd/archive/2013/03/24/2979944.html

启动service有两种方法:
      1.    Context.startService()
             调用者(Client)与服务端(Server)之间没有关联,即使调用者退出,服务仍可运行。
      2.    Context.bindService()
             调用者(Client)与服务端(Server)绑定在一起,可以多个调用者(Client)绑定一个服务端(Server),当所有的调用者(Client)退出,服务端(Server)也就终止。

Service的生命周期:

1.    被启动的服务(startService())的生命周期。
             如果一个Service被某个Activity 调用Context.startService() 方法启动,那么不管是否有Activity使用bindService()绑定或unbindService()解除绑定到该Service,该Service都在后台运行。如果一个Service被多次执行startService(),它的onCreate()方法只会调用一次,也就是说该Service只会创建一个实例,而它的onStartCommand()将会被调用多次(对应调用startService()的次数)。该Service将会一直在后台运行,直到被调用stopService(),或自身的stopSelf方法。当然如果系统资源不足,系统也可能结束服务。
      2.    被绑定的服务(bindService())的生命周期。
             如果一个Service被调用 Context.bindService ()方法绑定启动,不管调用bindService()调用几次,onCreate()方法都只会调用一次,而onStartCommand()方法始终不会被调用,这时会调用onBind()方法。当连接建立之后,Service将会一直运行,除非调用Context.unbindService() 断开连接或者之前调用bindService() 的 Context 不存在了(如该Activity被finish),系统将会自动停止Service,对应onDestroy()将被调用。
      3.    被启动又被绑定的服务的生命周期。
             如果一个Service又被启动又被绑定,则该Service将会一直在后台运行。调用unbindService()将不会停止Service,而必须调用stopService()或Service的stopSelf()方法来停止服务。
      4.   当服务被停止时清除服务。
            当一个Service被终止时,Service的onDestroy()方法将会被调用,在这里应当做一些清除工作,如停止在Service中创建并运行的线程等

5. BroadcastReciver的生命周期;

子类需要实现onRecive方法,生命周期只能持续10s左右, 不适合做耗时操作

public class MyReciver extends BroadcastReceiver {

    @Override
public void onReceive(Context context, Intent intent) { } }

6. ContentProvider的生命周期;

子类必须实现的是onCreate, 生命周期函数只有onCreate

public class FirstProvider extends ContentProvider {

    @Override
public boolean onCreate() {
return false;
}

7. View的生命周期;

onFinishInflate() 当View中所有的子控件均被映射成xml后触发
onMeasure( int , int ) 确定所有子元素的大小
onLayout( boolean , int , int , int , int ) 当View分配所有的子元素的大小和位置时触发
onSizeChanged( int , int , int , int ) 当view的大小发生变化时触发
onDraw(Canvas) view渲染内容的细节
onKeyDown( int , KeyEvent) 有按键按下后触发
onKeyUp( int , KeyEvent) 有按键按下后弹起时触发
onTrackballEvent(MotionEvent) 轨迹球事件
onTouchEvent(MotionEvent) 触屏事件
onFocusChanged( boolean , int , Rect) 当View获取或失去焦点时触发
onWindowFocusChanged( boolean ) 当窗口包含的view获取或失去焦点时触发
onAttachedToWindow() 当view被附着到一个窗口时触发
onDetachedFromWindow() 当view离开附着的窗口时触发,Android123提示该方法和 onAttachedToWindow() 是相反的。
onWindowVisibilityChanged( int ) 当窗口中包含的可见的view发生变化时触发

Android内的生命周期整理的更多相关文章

  1. 重温Android和Fragment生命周期

    重温下Android和Fragment生命周期,理解生命周期方法的作用,什么时候调用,可以做一些什么操作. 1.Android生命周期 1.1 生命周期图 1.2 生命周期函数说明 onCreate: ...

  2. Android Activity的生命周期简单总结

    Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...

  3. android开发之生命周期

    android开发之生命周期 一:Activity的生命周期: 这几天了了解了安卓Activity的生命周期,对于生命周期有了大概的理解: 一个Activity的生命周期也就是Activity从生成到 ...

  4. Android开发——Activity生命周期

    Android开发--Activity生命周期 Activity作为四大组件之首,也是使用最频繁的一种组件.本文将主要讲解Activity生命周期,包括正常情况下的Activity生命周期和异常情况下 ...

  5. SpringBoot内置生命周期事件详解 SpringBoot源码(十)

    SpringBoot中文注释项目Github地址: https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE 本篇接 SpringBoot事件监听 ...

  6. Android:Activity生命周期

    Android是使用任务(Task)来管理活动的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack). 栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新 ...

  7. Android活动的生命周期

    掌握活动的生命周期对任何Android开发者来说都非常重要,当你深入理解活动的生命周期之后,就可以写出更加连贯流畅的程序. -------------------------------------- ...

  8. android: 服务的生命周期

    9.4   服务的生命周期 之前章节我们学习过了活动以及碎片的生命周期.类似地,服务也有自己的生命周期, 前面我们使用到的 onCreate().onStartCommand().onBind()和 ...

  9. Android编程: Activity生命周期和LogCat使用

    学习内容:Activity生命周期和LogCat使用 ====Activity生命周期==== 图示(转载): 创建    onCreate重启    onRestart开始    onStart恢复 ...

随机推荐

  1. hdoj 1201 18岁生日

    18岁生日 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  2. Redis未授权访问缺陷让服务器沦为肉鸡

    朋友的一个项目说接到阿里云的告警,提示服务器已沦为肉鸡,网络带宽被大量占用,网站访问很慢,通过SSH远程管理服务器还频繁断开链接.朋友不知如何下手,便邀请我帮忙处理. 阿里云的安全告警邮件内容: 在没 ...

  3. TimeSpan XML序列化

    /// <summary> /// 刷新时间 默认为1秒 /// </summary> /// <value>The refresh time.</value ...

  4. 《linux程序设计》--读书笔记--第十四章信号量、共享内存和消息队列

    信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并 ...

  5. 程序猿的编程神器 - vim

    一.官方文档: 当你首次安装好 Vim 之后.能够用 :help tutor 或者 :help tutor@cn 命令.进入一个30分钟的 Vim 新手教程.你也能够下载一个 Vim Document ...

  6. TR069协议向导——一个帮助你了解TR069协议的简明教程(一)

    您也能够到下面地址下载: http://download.csdn.net/source/993034 1.为什么须要TR069    随着VoIP.IPTV等越来越多IP终端设备的普及(尤其在家庭中 ...

  7. android 63 Fragment

    #Fragment 是3.0平板才引入进来的,3.0之后就加入了Fragment.原来是一个屏幕就是一个Activity,>片段,碎片 1. 定义某一个片段的界面 继承Fragment类 pub ...

  8. lua function

    This is the main reference for the World of Warcraft Lua Runtime. Note that these are mostly standar ...

  9. 注释驱动的 Spring cache 缓存介绍--转载

    概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使 ...

  10. iOS开发中.pch 文件的使用及其相关工程设置

    .pch文件 也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问.是一个预编译文件. 首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部 ...