Activity重要函数
一。onConfigurationChanged 与 android:configChanges
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut
down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted.
Instead, the activity remains running and its onConfigurationChanged() method is called.
配置了android:configChanges后,当声明的configChange改变时,系统会调用Activity的onConfigurationChanged,而不会重新创建Activity.
android:configChanges="orientation|keyboardHidden|screenSize"
HONEYCOMB_MR2(3.2以上)
二。onRetainNonConfigurationInstance 与 getLastNonConfigurationInstance
This function is called purely as an optimization, and you must not rely on it being called. When it is called, a number of guarantees
will be made to help optimize configuration switching:
- The function will be called between
onStop()andonDestroy().
- A new instance of the activity will always be immediately created after this one's
onDestroy()is called. In particular, no messages
will be dispatched during this time (when the returned object does not have an activity to be associated with).
- The object you return here will always be available from the
getLastNonConfigurationInstance()method of the following activity
instance as described there.
这个方法最大的好处是:
* 当Activity曾经通过某个资源得到一些图片或者信息,那么当再次恢复后,无需重新通过原始资源地址获取,可以快速的加载整个Activity状态信息。
* 当Activity包含有许多线程时,在变化后依然可以持有原有线程,无需通过重新创建进程恢复原有状态。
* 当Activity包含某些Connection Instance时,同样可以在整个变化过程中保持连接状态。
注意:
* onRetainNonConfigurationInstance()在onSaveInstanceState()之后被调用。
* 调用顺序同样介于onStop() 和 onDestroy()之间。
三。Fragment 的 setRetainInstance
Control whether a fragment instance is retained across Activity re-creation (such as from a configuration change). This can only be
used with fragments not in the back stack. If set, the fragment lifecycle will be slightly different when an activity is recreated:
onDestroy()will not be called (butonDetach()still will be, because the fragment is being detached from its current activity).
onCreate(Bundle)will not be called since the fragment is not being re-created.
onAttach(Activity)andonActivityCreated(Bundle)will still be called.
四。onSaveInstanceState 与 onRestoreInstanceState
This method is called before an activity may be killed so that when it comes back some time in the future it can restore its state.
For example, if activity B is launched in front of activity A, and at some point activity A is killed to reclaim resources, activity A will
have a chance to save the current state of its user interface via this method so that when the user returns to activity A, the state
of the user interface can be restored via onCreate(Bundle) oronRestoreInstanceState(Bundle).
The default implementation takes care of most of the UI per-instance state for you by calling onSaveInstanceState() on each view in
the hierarchy that has an id, and by saving the id of the currently focused view. If you override this method to save additional
information not captured by each individual view, you will likely want to call through to the default implementation, otherwise be
prepared to save all of the state of each view yourself.
If called, this method will occur before onStop(). There are no guarantees about whether it will occur before or after onPause().
Activity重要函数的更多相关文章
- 安卓开发之activity详解(sumzom)
app中,一个activity通常是指的一个单独的屏幕,相当于网站里面的一个网页,它是对用户可见的,它上面可以显示一些控件,并且可以监听处理用户的时间做出响应. 那么activity之间如何进行通信呢 ...
- Android应用程序窗口(Activity)的运行上下文环境(Context)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8201936 在前文中,我们简要介绍了Andro ...
- unity 调用android函数
unity 调用android函数 分类: unity2013-12-19 17:54 475人阅读 评论(0) 收藏 举报 unityandroidjar 我们知道,安卓project都有一个And ...
- Activity启动流程
Activity启动过程中做了哪些事情?下面的时序图展示里启动过程中函数的调用过程, 从图中可以知道大概流程. 在介绍细节的时候是从上往下函数调用过程介绍的,如果不知道某个函数是在哪里被谁调用的,可以 ...
- Android减少布局层次--有关Activity根视图DecorView的思考
1 Android应用图层 一直觉得有关DecorView还是有些问题没有搞清楚,今天在看了一点有关SurfaceFlinger的内容以后,顿时突发奇想,想到之前的问题,之前的思考是: 虽然可以将De ...
- Activity启动过程源代码分析
事实上写分析源代码文章总会显得非常复杂非常乏味,可是梳理自己看源代码时的一些总结也是一种提高. 这篇博客分析下Activity启动过程源代码,我会尽量说得简单点. 个人的观点是看源代码不能看得太细,否 ...
- Android获取位置信息的方法总结
1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位.移动通信.导航等多种技术,提供与空间位置相关的综 ...
- Android使用Application的好处
如果一个应用程序有2个入口的,1个入口程序打开修改其中的内容,怎么实现另一个入口的数据也修改呢? 下面就用到Application来实现数据的共享,因为一个应用程序只有一个Application,Ap ...
- Android Fragment的使用
定义 Fragment可以理解成一个迷你型的活动,同样可以包含布局,同样有自己的生命周期.比Activity要轻量级,在程序内部做界面跳转要比Activity快的多. 静态添加 Fragment可以静 ...
随机推荐
- JAVA WEB项目开发案例精粹
http://www.blogjava.net/zongbao/archive/2012/07/24/383884.htmlJAVA WEB项目开发案例精粹.pdf main Alt + / => ...
- UVA 11014 - Make a Crystal(容斥原理)
UVA 11014 - Make a Crystal 题目链接 题意:给定一个NxNxN的正方体,求出最多能选几个整数点.使得随意两点PQ不会使PQO共线. 思路:利用容斥原理,设f(k)为点(x, ...
- 2. Add Two Numbers【medium】
2. Add Two Numbers[medium] You are given two non-empty linked lists representing two non-negative in ...
- JavaScript之语句
ECMA-262 规定了一组语句(也称为流控制语句).从本质上看,语句定义了 ECMAScript 中的主要语法,语句通常使用一或多个关键字来完成给定任务. if语句 if语句是最常见的一种语句,语法 ...
- object is not an instance of declaring class
错误原因:invoke方法的时候,应该是类的实例对象,而不是类本身 解决方法:把 PowerMockito.doReturn(index_expect).when(IndexController.cl ...
- CenOS下安装Memcache和PHP Memcache扩展.
I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 yum install libevent-devel 2.安装memcac ...
- JQuery IN ACTION读书笔记之一: JQuery选择器
本章关注两个通过$()使用的常用功能: 通过选择器选择DOM元素,创建新DOM元素. 2.1 选择操作元素 JQuery采用了CSS的语法,而CSS的语法你可能已经很熟悉了.当然,JQuery也做了扩 ...
- flex初始化方法
initalize是初始化,creationcomplete是创建完成,applicationComplete是应用程序中所有的实例都创建完成后才执行,三者的执行顺序是intalize creatio ...
- 本地调试远程api tag
当你在本地开发js且需要跨域调用远程接口的时候.可按照下列步骤设置你的chrome. 1.创建chrome快捷方式. 2.右键属性新的快捷方式,在目标一栏后面追加 "--args ...
- Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例
在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ...