您的位置:首页 > 移动开发 > Android开发

安卓中四大组件之——Activity

2015-02-06 14:31 639 查看
首先为了方便在Logcat中观察activity的生命周期,学习一下打印Log的方法:

  1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

  2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择;

  3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息;

  4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息;

  5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了;

---------------------------------------------------------我是分割线-----------------------------------------------------------
现在正式介绍Activity:
1.Activity是提供给用户操作的一个界面。
2.Activity的生命周期:
onCreate():不用说,这个方法在你创建一个Activity的时候系统会自动帮你重写,里面做的是一些初始化的操作,一般是初始化View,初始化数据,初始化一些应用程序在刚启动Activity需要准备的东西;

onStart():这个方法是当Activity对用户可见的时候会被调用,接着调用onResume();

onResume():当Activity开始与用户交互是调用,这时该Activity处于栈的顶部,可以接收用户的操作

onPause():用户不可对该Activity操作时调用,这时Activity失去焦点,通常用来做一些数据的持久化保存当前Activity的状态。

onStop():当Activity对用户不可见时调用该方法,如果Activity将要返回与用户交互时调用onRestart(),如果Activity准备销毁就接着调用onDestory();

onDestory():在Activity即将销毁前调用的最后一个方法,用来处理一些善后的事。

/*
        启动Activity会调用的方法
  02-04 10:34:29.579: V/onCreate(1675): onCreate
  02-04 10:34:29.579: V/onStart(1675): onStart
  02-04 10:34:29.579: V/onResume(1675): onResume
*/

/*
        关闭Activity会调用的方法
  02-04 10:34:58.320: V/onPause(1675): onPause
  02-04 10:34:58.790: V/onStop(1675): onStop
  02-04 10:34:58.790: V/onDestroy(1675): onDestroy
*/

/*
        按Home键会调用的方法
  02-04 10:37:47.792: V/onPause(1675): onPause
  02-04 10:37:48.232: V/onStop(1675): onStop
*/

/*
        长按Home键回到Activity会调用的方法
  02-04 10:38:50.103: V/onRestart(1675): onRestart
  02-04 10:38:50.103: V/onStart(1675): onStart
  02-04 10:38:50.103: V/onResume(1675): onResume
*/

如果对解释有些不理解看一看官方提供的Activity的生命周期图



3.有关Activity横竖屏切换时的生命周期
/*
        没有在activity中配置configChanged属性时:横竖屏切换会调用的方法
  02-04 10:44:25.358: V/onPause(1675): onPause
  02-04 10:44:25.358: V/onStop(1675): onStop
  02-04 10:44:25.358: V/onDestroy(1675): onDestroy
  02-04 10:44:25.368: V/onCreate(1675): onCreate
  02-04 10:44:25.368: V/onStart(1675): onStart
  02-04 10:50:05.653: V/onRestoreInstanceState(2830): onRestoreInstanceState
  02-04 10:44:25.368: V/onResume(1675): onResume
*/

/*

    在activity中配置configChanged属性为orientation|keyboardHidden|screenSize时:横竖屏切换会调用的方法

    02-04 11:01:37.404: V/onConfigurationChanged(3922): onConfigurationChanged
*/

4.Activity的四种启动模式

在清单文件中配置android:launchMode属性来根据需求来更改或设置
安卓中创建的Activity是以栈的形式来呈现的

1.standard:默认的,不设置该属性的默认启动模式,每次调用startActivity()启动时都会创建一个新的Activity放在栈顶

2.singleTop:启动Activity时,指定Activity不在任务栈的栈顶就会创建,如果在栈顶,调用onNewInstance()复用已经存在的实例

3.singleTask:在任务栈里面只允许一个实例,如果启动的Activity不存在就创建,存在就直接跳转到该Activity所存在的位置

4.singleInstance:单例,开启一个新的任务栈来存放这个Activity的实例,在整个手机操作系统里面只有一个该任务栈的实例存在,此模式开启的Activity是运行在自己的任务栈中的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  安卓 android