活动及活动的生命周期

什么是Activity

简单的说Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面,也就是手机屏幕上所显示的内容。

在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Activity。Intent-filter中的两行代码非常重要,表示该活动是主活动。

当程序第一次运行时就可以看到这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的Activity时,这个当前的活动就会停止,被压入栈底,新的活动会在栈顶并运行。当用户按Back键时,当前活动会被销毁,前一个活动重新恢复运行。

活动的生命周期:

活动的七个方法与三个阶段:

1.onCreate()

每个活动都会有的方法,在活动第一次被创建的时候调用

2.OnStart

这个活动在活动由不可见变为可见的时候调用

3.OnResume

这个方法在活动准备好和用户进行交互的时候调用,此时的活动一定位于返回栈的栈顶,并且处于运行状态。

4.onPause()

这个方法在系统准备去启动或者恢复另一个活动的时候调用。我们通常会在这个方

法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度

一定要快,不然会影响到新的栈顶活动的使用。

5.onStop()

这个方法在活动完全不可见的时候调用。它和onPause()方法的主要区别在于,如

果启动的新活动是一个对话框式的活动,那么onPause()方法会得到执行,而onStop()

方法并不会执行。

6.onDestroy()

这个方法在活动被销毁之前调用,之后活动的状态将变为销毁状态。

7.onRestart()

这个方法在活动由停止状态变为运行状态之前调用,也就是活动被重新启动了。

以上七个方法中除了onRestart()方法,其他都是两两相对的,从而又可以将活动分为三

种生存期。

三个阶段:

1.开始Activity:在这个阶段依次执行3个生命周期的方法,分别是:onCreate、onStart和onResume方法

2.Activity重新获得焦点:如果Activity重新获得焦点,会依次执行3个方法,onRestart、onStart和onResume

3.关闭Activity:当Activity被关闭时系统会依次执行3个方法,onPause、onStop和onDestory。

从以上的Activity的生命周期不难看出,该图包含了两层循环,,第一层循环是:onPause->onResume->onPause

第二层循环是:onStart->onRestart->onResume->onPause->onStop

第一层循环称为是焦点生命周期,第二层循环可以视为生命周期。也就是说,第一层循环是在Activity焦点获得与失去的过程中循环,在这个过程中,Activity始终是可见的

第二层循环是Activity可见和不可见的过程中循环。

package com.example.android_life;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 String TAG = "MainActivity";protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.i(TAG, "onCreate is executed");}@Overrideprotected void onStart() {// TODO Auto-generated method stubsuper.onStart();Log.i(TAG, "onStart is executed");}@Overrideprotected void onRestart() {// TODO Auto-generated method stubsuper.onRestart();Log.i(TAG, "onRestart is executed");}@Overrideprotected void onResume() {// TODO Auto-generated method stubsuper.onResume();Log.i(TAG, "onResume is executed");}@Overrideprotected void onStop() {// TODO Auto-generated method stubsuper.onStop();Log.i(TAG, "onStop is executed");}@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();Log.i(TAG, "onPause is executed");}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();Log.i(TAG, "onDestroy is executed");}}

当程序部署到模拟器上的时候,先出现了onCreateonStart、onResume(创建->启动->运行)方法,这时候,按拨号按钮,会出现onPause、onStop(暂停->停止)方法。按下Back键onRestartonStartonResume(重启->启动->运行)退出键onPauseonStoponDestory(暂停->停止->销毁)

其实每一朵花,都有它自己的生命,

活动及活动的生命周期

相关文章:

你感兴趣的文章:

标签云: