Android生命周期介绍
来源:互联网 发布:淘宝质量问题退货 编辑:程序博客网 时间:2024/04/28 13:56
什么是Activity,简单的说:Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中制定一个主Activity,如
下设置
<activityandroid:name=".ActionViewTest"android:label="@string/title_activity_action_view_test"><!-- android:name=".ActionViewTest表示整个应用程序的主程序的名称<intent-filter>意图过滤器:用于过滤用户的一些动作和操作"android.intent.action.MAIN"表示当前程序是否在程序是整个工程的入口程序category android:name表示决定应用程序是否在程序列表中显示--><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.action.MAIN" /></intent-filter></activity>
当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关的操作。
当启动其他的Activity时这个当前的这个Activity将会停止,新的Activity将会停止,新的Activity将会压入栈中,同时获取 用户焦点,这是就可在这个Activity上操作了。
我们都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity重新恢复。
我们来看看Activity生命周期的7个方法和3个阶段
7个方法如下:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onPause()
void onStop()
void onDestroy()
Activity的三个阶段:
开始Activity:在这个阶段依次执行3个生命周期的方法,分别是onCreare,onStart,onResume方法。
Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个生命周期,分别是onRestart,onStart,onResume
关闭Activity,当Activity被关闭是系统会依次执行3个生命周期,分别是onPause,onStoo,onDestroy
从上图可以看出有两层循环,第一层是焦点的获得与失去循环,onResume()->onPause->onResume()。
第二层是可视与不可视的循环,onStart->onResume->onPause->onStop->onRestart。
具体周期如下:
整个生命周期:onCreat->onDestroy
焦点生命周期:onResume->onPause
可视生命周期:onStart->onStop()
示例源代码如下:
package com.example.lifedemo;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity { private final String TAG = "MainActivity";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.i(TAG, "onCreate is execute");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();Log.i(TAG, "onStart is execute");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();Log.i(TAG, "onResume is execute");}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();Log.i(TAG, "onPause is execute");}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();Log.i(TAG, "onStop is execute");}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();Log.i(TAG, "onDestroy is execute");}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();Log.i(TAG, "onRestart is execute");}}
首先运行程序
运行onCreat->onStart->onResume获得焦点
然后模拟打电话onPause->onStop失去焦点//在两个步骤之间执行第二个Avtivity的onCreate onStart onResume
同时注意只有第一个Activity被全部遮盖才会调用onStop,如果只是调用了一个对话框是不会没有全部遮盖就不会调用onStop了。
然后推出打电话状态onRestart->onStart->onResume重新获得焦点//开始第二个Activity先执行onPause,在最后会执行第二个Activity的onStop onDestory
最后back键onPause->onStop->onDestroy程序结束
onDestory在执行了finish()或系统资源不够用是会被调用。
- Android 生命周期介绍
- android Activity生命周期介绍
- Android生命周期介绍
- android application生命周期介绍
- android Fragment生命周期介绍
- [4.18]Android生命周期介绍
- android application生命周期介绍
- android application生命周期介绍
- Android进程与生命周期介绍
- 4. Android生命周期的介绍
- Android进程与生命周期介绍
- Android系统框架介绍和生命周期介绍
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- Android四大基本组件介绍与生命周期
- 黑马程序员——java基础之薄弱点总结(三)
- 点击超链接调用javascript函数
- 机器视觉光源基础知识1
- 懒加载异常org.hibernate.LazyInitializationException: could not initialize proxy - no
- 自动化存储物流系统
- Android生命周期介绍
- Maven实战(二)构建简单Maven项目
- Codeforces Round #281 (Div. 2)
- HDU 5135 Little Zu Chongzhi's Triangles(状态压缩)
- quartz常见问题
- iOS中常用的颜色色值
- iOS开发---常用文件读写操作。
- Linux字符设备驱动学习1
- 【学习OpenCV】矩阵操作的函数