Android之Activity生命周期详解
Activity的生命周期方法:
1,activity创建到显示要调用前三个方法.
2,点击后退键,做了两件事:(1)当前activity被销毁,调用后面三个周期方法。(2)栈中位于最顶部的Activity显示出来。
3,onDestory()方法主要是当Activity被销毁的时候,释放资源,防止内存泄露。
4,重写生命周期方法很有用,有时候能够实现特殊需求。比如onResume()方法,获取购物车中商品的数量;onPause()保存当前音乐的播放位置。
---------------------
1,从一个Activity跳转到另一个Activity经历的生命周期方法:(红色表示第二个activity的生命周期方法)
onCreate()--->onStart()--->onResume()--->onPause()--->onCreate()--->onStart()--->onResume()--->onStop()
2,单击后退键,从第二个Activity到第一个Activity,调用了哪些生命周期方法?(红色表示第一个activity的生命周期方法,不用重新创建,已经在栈中,直接重新启动就好了,第二个Activity则被销毁掉)
onPause()--->onRestart()--->onStart()--->onResume()--->onStop()---> onDestory()
点击后退键对当前的activity是销毁操作
3,为什么Activity的生命周期方法设计成这样?为什么不是一个Activity的生命周期走完,再创建另外一个Activity呢?为什么要先暂停正在显示的Activity呢?
正在听歌的时候,电话来了;如果音乐不停止播放,电话还在响,肯定不合理。在onPause()方法中进行判断,如果当前音乐正处于播放状态,就让音乐暂停播放。onPause()主要用于保存Activity的状态信息
为什么跳转到第二个Activity时,第一个Activity最后调用onStop()方法?
防止第二个activity启动不正常、闪退,导致什么都不显示。(防止在创建第二个Activity的时候,发生意外)
1,从竖屏到横屏的切换,activity调用了哪些生命周期方法?
如果不进行处理,就会销毁当前的Activity,然后创建新的Activity。
2,横竖屏切换的时候,如果重写了onSaveInstanceState(Bundle bundle),Activity生命周期方法的调用顺序:
onResume()--->onPause()--->onSaveInstanceState(Bundle bundle)--->onStop()--->onDestory()
在onCreate()方法中取出保存的状态信息。
3,实际上横竖屏切换的时候不应该重新创建activity,而应该保存当前的activity的状态数据。
onSaveInstanceState(Bundle bundle) Activity中的方法
4,一般的应用都不支持横竖屏切换的,因为横屏界面需要重新设计,开发周期比较长。
案例:在当前的Activity中播放音乐。raw文件夹在res文件夹下,资源文件。
关键是MediaPlayer的api使用
category:属性用于指定当前动作(Action)的执行环境,至少写一个category。
action:要指定这两个元素。给定一个动作,动作保持一致。就可以激活activity
清单文件中,activity中action可以配置一个也可以配置多个。
浏览器、相册、短信、电话、setting界面等,找到对应的activity。
1)Activity传递大数据时,遇到的问题。使用Bundle传递数据,不能超过1M。如果超过,新的activity无法激活,数据传递不过去。
2)为了节省流量,数据都是从前一个页面传递过来的,避免了跟服务器的再次交互,这样对用户来说就是比较省流量的。
一个应用对应一个任务栈。一个应用中,所有的激活的activity都处于一个任务栈当中
每个activity都对应一个id存储到任务栈中。
任务就是activity的序列集合.
finish方法的调用,把当前的activity从任务栈中关掉。
activity之间允许夸进程的交互。
查看Activity任务栈的命令:
adb shell dumpsys activity 该命令可以看到当前运行的是哪个activity,运行的一些进程等.
Android之Activity生命周期详解的更多相关文章
- Android关于Activity生命周期详解
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...
- xamarin Android activity生命周期详解
学Xamarin我为什么要写这样一篇关于Android 的activity生命周期的文章 已经学Xamarin android有一段时间了,现在想起当初Xamarin也走了不少的弯路.当然Xamari ...
- Android Activity 生命周期详解
学习android开发这么久对于activity的生命周期还没有仔细思考过,所以,我大致的把这些东西整理一下,希望通过这使自己理解的更透彻点吧! 首先看一下Activity生命周期图和它的的四个阶段 ...
- 【转】Activity生命周期详解
三个循环 提供两个关于Activity的生命周期模型图示帮助理解: 图1 图2 从图2所示的Activity生命周期 ...
- Android学习笔记:Activity生命周期详解
进行android的开发,必须深入了解Activity的生命周期.而对这个讲述最权威.最好的莫过于google的开发文档了. 本文的讲述主要是对 http://developer.android.co ...
- Android四大组件之---activity生命周期详解
废话不多说, 先来一张Google提供的一张经典的生命周期流程图: 有的朋友可能看英文的有点费劲,再提供一张中文版的 O(∩_∩)O 相信已经很多人对这张图再熟悉不过了,下面笔者按照自己的理解并结合 ...
- Activity生命周期详解
http://blog.csdn.net/liuhe688/article/details/6733407 onPause 回到 onResume 的过程“在一般的开发中用不上”,但是作为开发者还是有 ...
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
- ASP.NET生命周期详解
最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...
随机推荐
- P3301 [SDOI2013]方程
思路 容斥的挺好的练习题 对于第二个条件,可以直接使m减去suma2,使得第二个条件舍去,然后m再减去n,使得问题转化成有n1个变量要满足小于等于某个数的条件,其他的随便取,求整数解的个数 对n1,以 ...
- 题解——loj6279 数列分块入门3 (分块)
用set维护有序序列 或许sort也可以,但这题的前驱定义是严格小于 所以要去重 然后就是记得自己打的加法tag在query的时候一定要算上 话说这题数据有点fake啊忘了查询算上自己的标记了还有70 ...
- js转义和反转义html
本文地址: http://www.cnblogs.com/daysme/p/7100553.html 下面的代码网上常用有,但不是想要的. JS实现HTML标签转义及反转义 http://blog.c ...
- windows特殊文件或文件夹
考了很多文章,搜集了很多资料整理而成.好的用途可以用来隐藏个人资料,防止误删,病毒免疫等等.至于坏的方面,当然也可用来隐藏木马等等,就看你怎么用了.还有一个没有搞明白,资料上也没找到,请知道的指点一下 ...
- 清除浏览器CSS样式
/* YUI 3.18.1 (build f7e7bcb) Copyright 2014 Yahoo! Inc. All rights reserved. Licensed under the BSD ...
- 3、Python函数详解(0601)
回顾: re search,findall,finditer.sub,subn function () 调用函数 def func_name(arg1,....) 生成函数对象 func_s ...
- 【NOI 2009】诗人小G
Problem Description 小 \(G\) 是一个出色的诗人,经常作诗自娱自乐.但是,他一直被一件事情所困扰,那就是诗的排版问题. 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用 ...
- python3 session cookie
session是保存在服务器中的,而cookies是保存在客户端中的.服务器通过session id来跟踪客户,而对于客户端而言,session id是保存在cookies中的,所以只要把cookie ...
- linux查看历史操作记录并且显示执行时间
vim ~/.bashrc 或者 ~/.bash_profile 增加:export HISTTIMEFORMAT="%F %T " 查看历史记录之前先执行: 然后使用hist ...
- 前端html5/css基础知识
https://www.cnblogs.com/clschao/articles/10073124.html