Android Activity生命周期
从android api文档摘抄出来的activity生命周期图如下:
Activity有如下四种状态
a、活动状态 activity处于屏幕前台,获取到了焦点可以和用户进行交互,同一时刻只有一个activity处于活动状态
b、暂停状态 activity可视但失去焦点(被其它activity部分遮盖或者处于透明activiy下)
c、停止状态 activity完全被另外一个activity遮挡,但保留用户状态信息d、非活动状态 activity尚未启动或者已经被手动终止或者由于内存不足被系统回收
activity生命周期中重要的方法
a、oncreate 加载布局文件,绑定各类监听事件
b、onstart 界面可见但未能获取焦点,不能与用户交互
c、onrestart 当activity执行过onstop方法,再进行启动时候会调用
d、onresume 界面可见且能获取到焦点,能与用户交互
e、onpause 界面失去焦点,但可视
f、onstop 当activity完全不可视
g、ondestroy 手动调用finish或者内存不足系统回收
举例说明activity各个方法切换,新建A,B,C三个activity,其中B设置成透明
a、启动主页面A,onCreate(A)- onStart(A) - onResume(A)
b、打开透明B,onPause(A)-onCreate(B)- onStart(B) - onResume(B)
c、点击back按钮回到页面A,onPause(B)- onResume(A)- onStop(B)- onDestroy(B)
d、打开全屏页面C,onPause(A) - onCreate(C)- onStart(C) - onResume(C)- onStop(A)
e、再次点back按钮,onPause(C)- onRestart(A)- onStart(A) - onResume(A)- onStop(C)- onDestroy(C)
f、再点击back onPause(A)- onStop(A)- onDestroy(A)
onSaveInstanceState和onRestoreInstanceState方法
a、当activity非正常(比如按home键或者跳转下一个页面)退出后,会在调用onPause之后调用onSaveInstanceState保存临时状态,以便在onCreate或者onRestoreInstanceState恢复状态
b、调用onSaveInstanceState和调用onRestoreInstanceState非对称,也就是调用了onSaveInstanceState方法,再返回不会调用onRestoreInstanceState方法
c、onRestoreInstanceState会在onresume之前被调用,当栈顶activity B异常退出,会激活栈中第二个activity A,这时会触发A的onRestoreInstanceState方法;或者当横竖屏转化时候也会触发oncreate和onRestoreInstanceState方法
Android Activity生命周期的更多相关文章
- [转]: 两分钟彻底让你明白Android Activity生命周期(图文)!
转自:http://blog.csdn.net/android_tutor/article/details/5772285 大家好,今天给大家详解一下Android中Activity的生命周期,我在前 ...
- Android Activity生命周期详讲
管理 Activity 生命周期 通过实现回调方法管理 Activity 的生命周期对开发强大而又灵活的应用至关重要. Activity 的生命周期会直接受到 Activity 与其他 Activit ...
- android Activity生命周期(设备旋转、数据恢复等)与启动模式
1.Activity生命周期 接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...
- Android Activity生命周期以及Fragment生命周期的区别与分析
Android Fragment生命周期图: Activity生命周期图: 对照图: Fragment生命周期分析: 1. 当一个fragment被创建的时候,它会经历以下状态. onAttach() ...
- Android Activity 生命周期详解
学习android开发这么久对于activity的生命周期还没有仔细思考过,所以,我大致的把这些东西整理一下,希望通过这使自己理解的更透彻点吧! 首先看一下Activity生命周期图和它的的四个阶段 ...
- xamarin Android activity生命周期详解
学Xamarin我为什么要写这样一篇关于Android 的activity生命周期的文章 已经学Xamarin android有一段时间了,现在想起当初Xamarin也走了不少的弯路.当然Xamari ...
- Android——Activity生命周期(转)
Activity生命周期 子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细 ...
- Android Activity生命周期的几个问题
每一个Android开发者都应该知道,android系统有四个重要的基本组件,即Activity(活动).Service(服务).Broadcast Receive(广播接收器)和Content ...
- android --Activity生命周期具体解释
一. 再探Activity生命周期 为了研究activity的生命周期,简单測试代码例如以下. package com.example.testactivity; import android.app ...
随机推荐
- img
public BitmapImage BitmapToImage(System.Drawing.Bitmap bitmap) { System.Drawing.Bitmap bitmapSource ...
- The path to the driver executable must be set by the webdriver.gecko.driver system property
报这个错,是因为你使用了selenium3+Firefox.在selenium3中,使用Firefox,需要添加驱动. 您可以从Github上下载驱动程序下载网址- https://github.c ...
- DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装
打开VS2015,出现 “DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装,该解决方案将对此会话使用DNX SDK版本“dnx-clr-win-x86.1.0.0 ...
- CentOS下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)
一.源码包准备 服务器端主要是安装memcache服务器端下载:http://memcached.googlecode.com/files/memcached-1.4.4.tar.gz另外,Memca ...
- 老男孩python自动化运维作业1
#!/usr/bin/env pthon #字典操作三级菜单 “b”返回上一级菜单,“q”退出. menu={"BJ":{"cp":{1:1,2:2,3:3}, ...
- 【转】java项目转web项目
将项目文件.project文件的<natures>...</natures>代码段中加入 <nature>org.eclipse.wst.common.pro ...
- 使用echarts
<html> <head> <script type="text/javascript" src='echarts.min.js'></s ...
- [LeetCode][Java]Triangle@LeetCode
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...
- iOS UITableViewCell的分割线向左延长15(cell长度为全宽)
iOS7情况下: tableView.separatorInset = UIEdgeInsetsZero; iOS8.9情况下: 首先在viewDidLoad方法中加上如下代码: if ([table ...
- HTML 判断手机的类型(苹果手机安卓手机)
function isJudege_PlatForm() { var version = navigator.appVersion; var platName = navigator.userAgen ...