Activity的生命周期

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Activity生命周期 Activity生命周期
Activity是Android中一个非常重要的一个组件。那么 是 中一个非常重要的一个组件。 中一个非常重要的一个组件 Activity这个类在 这个类在Android中究竟扮演什么角色,该类中究竟定义 中究竟扮演什么角色, 这个类在 中究竟扮演什么角色 了什么方法,这些方法都有什么功用呢? 了什么方法,这些方法都有什么功用呢? 另外,一个 类似于一个窗口, 另外,一个Activity类似于一个窗口,当有另一个窗口启动 类似于一个窗口 时候,会把原来的Activity覆盖掉,那么原来的 覆盖掉, 时候,会把原来的 覆盖掉 那么原来的Activity处于什么 处于什么 状态呢?在本章我们就会一起探讨Activity的作用以及 的作用以及Activity的 状态呢?在本章我们就会一起探讨 的作用以及 的 方法以及Activity的生命周期。 的生命周期。 方法以及 的生命周期
案例演示
本章目标
• • • •
什么是Activity 什么是Activity Activity的生命周期 Activity的生命周期 事件处理方式 Android键盘事件和触摸事件 Android键盘事件和触摸事件
预习检查
提问
• 表示Activity生命周期的方法有哪几个 表示Activity生命周期的方法有哪几个
事件编码处理方式
• 四种编码方式
public class MainActivity extends Activity implements btn1.setOnClickListener(btnList1); <Button android:text="Button01" android:id="@+id/Button01" OnClickListener { Button btn1=(Button)findViewById(R.id.Button03); private OnClickListener btnList1=new android:layout_width="wrap_content" OnClickListener() { @Override //进行事件处理 @Override 进行事件处理 android:layout_height="wrap_content" public void onCreate(Bundle btn1.setOnClickListener(new savedInstanceState) public void onClick(View v) { OnClickListener() { { android:onClick=”btn1Click”></Button> //dosomething ….. ..... @Override Button btn1Click(View { } public void onClick(View v)view){ public void btn1=(Button)findViewById(R.id.Button01); ( ) //进行事件处理 //do something }; …… 进行事件处理 btn1.setOnClickListener(this); } } } }); @Override public void onClick(View v) { switch(v.getId()){ case R.id.Button01: //dosomething break; ......
• onStart()
Activity生命周期 Activity生命周期
• onResume
Activity开始与用户进行交互时调用(无论 Activity开始与用户进行交互时调用(无论 是启动一个新的Activity还是重启原来的 是启动一个新的Activity还是重启原来的 Activity该方法总是会被调用) Activity该方法总是会被调用)
• 生命周期七个方法阐释: • onCreate()
创建Activity时候调用。同时还以Bundle形 创建Activity时候调用。同时还以Bundle形 式提供存储以前任何状态的访问
• onRestart()
重新启动Activity调用,该Activity在堆栈中, 重新启动Activity调用,该Activity在堆栈中, 而不是创建一个新的Activity 而不是创建一个新的Activity
深,尤其是数据量很大
<activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" > android:screenOrientation="landscape"代表只允许屏幕横屏, 代表只允许屏幕横屏, 代表只允许屏幕横屏 android:configChanges表示可以捕捉用户手机状态的变化, 表示可以捕捉用户手机状态的变化, 表示可以捕捉用户手机状态的变化 orientation表示设备旋转,横向显示和竖向显示模式切换, 表示设备旋转, 表示设备旋转 横向显示和竖向显示模式切换, keyboardHidden用户打开手机硬件键盘,如果想捕捉多个状态变化使 用户打开手机硬件键盘, 用户打开手机硬件键盘 分隔。 用”|”分隔。 分隔
Activity生命周期 Activity生命周期
• 当点击跳转按钮 • 日志如下:
Activity生命周期 Activity生命周期
• 当点击返回按钮 • 日志如下:
Activity生命周期 Activity生命周期
• 点击模拟器的返回键 • 日志如下:
Activity生命周期 Activity生命周期
什么是Activity 什么是Activity
Activity是构建 是构建Android应用程序最基本的一种组件。在应 应用程序最基本的一种组件。 是构建 应用程序最基本的一种组件 用中,一个Activity通常就是一个单独的屏幕。每一个 通常就是一个单独的屏幕。 用中,一个 通常就是一个单独的屏幕 每一个activity都 都 被实现为一个独立的类,并且继承于Activity这个基类,其主要 这个基类, 被实现为一个独立的类,并且继承于 这个基类 的功用是与用户进行交互。 的功用是与用户进行交互。
Activity的生命周期 Activity的生命周期
提问
• • • •
Intent概念及其作用 Intent概念及其作用 Intent组成部分 Intent组成部分 窗体之间的跳转 显式Intent和隐式Intent 显式Intent和隐式Intent
本章案例
– Activity的生命周期 Activity的生命周期
• onPause
Activity被暂停。该方法是用来保存活动状 Activity被暂停。该方法是用来保存活动状 态的地方,以便Activity被重新启动时具有 态的地方,以便Activity被重新启动时具有 与其退出相同的状态。
Log类日志类 Log类日志类
• android.util.Log类,该类在Android中进行日志处 android.util.Log类,该类在Android中进行日志处 • • • •
深度剖析Activity 深度剖析Activity
• 大部分Android手机都支持重力感应,这样 大部分Android手机都支持重力感应,这样
对于手机的屏幕会随着用户的横竖不同的 当手机屏幕翻转的 时候, 时候,当前的 方式进行自动的横屏和竖屏处理。在模拟 Activity是销毁,而 是销毁, 是销毁 按下Ctr+F11 按下 后又重新创建出来 器上我们也可以通过PC 器上我们也可以通过PC的键盘操作实现。 PC的键盘操作实现。 比如,当应用程序启动时候,默认是竖屏 的.
Activity生命周期 Activity生命周期
Android系统主要用于手持设备上,由于手机的内存有限。 系统主要用于手持设备上,由于手机的内存有限。 系统主要用于手持设备上 所以必须在适当的时候结束一个Activity,将该 所以必须在适当的时候结束一个 ,将该Activity占用的内 占用的内 存释放,让给系统其他内容。 存释放,让给系统其他内容。 鉴于此的需求, 系统中的所有的Activity采取的是 鉴于此的需求,Android系统中的所有的 系统中的所有的 采取的是 Activity堆栈的管理方式。当一个新的 堆栈的管理方式。 启动时, 堆栈的管理方式 当一个新的Activity启动时,它位于堆 启动时 栈的顶部,成为运行的Activity;而前一个Activity保留在堆栈的 栈的顶部,成为运行的Activity;而前一个Activity保留在堆栈的 底部,不能在前台显示,只有当新的Activity销毁的设备上,由 销毁的设备上, 底部,不能在前台显示,只有当新的 销毁的设备上 于手机的内存有限。所以必须在适当的时候结束一个时候, 于手机的内存有限。所以必须在适当的时候结束一个时候,上一 个Activity才会重新在前台显示 才会重新在前台显示
Activity生命周期 Activity生命周期
• 在MainActivity和SecondActivity中加入表示 MainActivity和SecondActivity中加入表示
生命周期的七个方法,并在方法中进行日 志输出 • 当MainActivity第一次被加载的时候,日志 MainActivity第一次被加载的时候,日志 输出入下:
Activity生命周期 Activity生命周期
Activity生命周期 Activity生命周期
1. Activity的整个生命周期从onCreate方法开 Activity的整个生命周期从onCreate方法开 始,到最终调用onDestroy方法结束。所以 始,到最终调用onDestroy方法结束。所以 对于该Activity中的全局的资源在onCreate 对于该Activity中的全局的资源在onCreate 方法中设置,而最终在onDestroy 方法中设置,而最终在onDestroy方法中进 onDestroy方法中进 行资源的回收。 2. Activity在onStart方法和onStop方法之间处 Activity在onStart方法和onStop方法之间处 于可见状态即该Activity显示在屏幕上,但 于可见状态即该Activity显示在屏幕上,但 是不一定能和用户进行交互。onStart方法 是不一定能和用户进行交互。onStart方法 和onStop方法可以被多次调用。 onStop方法可以被多次调用。 3. Activity在onResume方法和onPause方法之 Activity在onResume方法和onPause方法之
Activity生命周期 Activity生命周期
• 通常一个Activity基本处于以下四种状态中 通常一个Activity基本处于以下四种状态中
的一种 • 当Activity在屏幕前台运行时(该Activity位 Activity在屏幕前台运行时(该Activity位 于堆栈的顶部),此时成为活动状态或者 为运行状态。 • 当Activity已经失去焦点,但仍然可见,此 Activity已经失去焦点,但仍然可见,此 时该Activity处于暂停状态 时该Activity处于暂停状态 • 当一个Activity跳转到另一个Activity,即一 当一个Activity跳转到另一个Activity,即一 个新Activity覆盖了原来的Activity,此时原 个新Activity覆盖了原来的Activity,此时原 Activity处于停止状态。 Activity处于停止状态。
理,便于开发者进行调试以及维护。 Log.v 该方法在控制台输出的颜色为黑色的,任 何消息都会输出 Log.d 该方法在控制台输出的颜色为蓝色,仅输 出debug调试的信息 debug调试的信息 Log.i 该方法在控制台的输出为绿色,一般提示性 的消息information,它不会输出Log.v和Log.d的 的消息information,它不会输出Log.v和Log.d的 信息,但会显示i 信息,但会显示i、w和e的信息 Log.w 该方法在控制台输出的颜色为橙色,可以 看作为warning警告,一般需要我们注意优化 看作为warning警告,一般需要我们注意优化
相关文档
最新文档