原创:kylin_zeng http://blog.chinaunix.net/uid/23795897.html
再此感谢mars 老师的帮助,转载请注明原创出处,尊重他人的劳动成果。
启动第一个activity时:
1、启动一个activity时,就会先调用onCreate(),
2、而当这个activity被看到的时候就调用onStart(),
3、当获得用户焦点的时候调用onResume(),
点击按钮跳转到第二个activity时:
1、第一个activity的onPause()方法,因为要跳到第二个activity了,因此调用这个来保存数据。比如来了一个电话,那么第一个当前的activity就必须先保留。
2、第二个activity的onCreate()方法。
3、第二个activity的onStart()方法。
4、第二个activity的onResume()方法。
5、第一个activity的onStop()方法。当第一个activity处于不可见的状态,也就是全部被遮住了就会调用这个。如果只遮挡一部分就不会调用这个。注意此时只是onStop而没有onDestory,也就是该activity是还存在的
当点击back 返回到第一个activity时:
1、调用第二个activity的onPause();
1、调用第一个activity的OnRestart();
2、调用第一个activity的onStart();
3、调用第一个activity的onResume();
4、调用第二个activity的onStop();
5、调用第二个activity的onDestory(); 用来销毁第二个activity,应该是按back的。finish方法或者系统资源不够用也能销毁,
******************生命周期二**************************
1、有三个activity,是堆栈压栈的,如果第一个activity onclick 里加入finish(),那么第三个activity点击back 时直接回到第一个activity.
2、如果第二个acitivity 要变成窗口对话框型,在AndroidManifest.xml 里面的第二个activity加入:
android:label=".SecondActivity"
android:theme="@android:style/Theme.Dialog"/> //加入这句就变成窗口对话框型。
3、这是如果是窗口型,也就是第二个activity没有完全遮住第一个activity,这是最上面蓝色的5onstop是不会调用的
附件1:
Activity_05.rar
阅读(2952) | 评论(0) | 转发(0) |