【学习笔记】Android Activity
2018-02-24 20:56
344 查看
本部分内容参考这里。
publish过的app,activity的名称是不能改变的。参考这里。
<activity> 的属性参考这里。
android预定义的action可以在Intent类的文档中查到,API27。
所有仅需执行一次的初始化过程。
由于activity将在Resume state和Pause state之间切换,android在每次切换到Resume state时,都将调用onResume()函数。在onResume()函数中可对某些资源进行重新获取或者初始化。这些资源应当在Pause state中得到释放。
activity在进入Pause state后不是立即进入Stop state,而是取决于当时的情形。实际上进入Pause state后,activity可能仍可见,此时若重新变成焦点,那么android将调用onResume()来还原。当activity从可见变为不可见,那么onStop()将会被调用。
若不需要有返回数据,则使用startActivity()。
若需要从activity中获得处理的数据,那么使用startActivityForResult()函数,并提供一个int类型的标识符。在被调用的activity返回之后,通过onActivityResult()函数获取之前所需的数据。onActivityResult()函数看起来是需要一个activity自行重写的。
在Activity A启动Activity B的过程中,activity的life cycle如下
(1)A的onPause()函数被调用。
(2)B的onCreate(), onStart(), onResume()函数被调用。
(3)当A在屏幕上不可见时,A的onStop()函数被调用。
一个activity终止有多种情况,当android系统由于资源调度而终止了处于stop状态的activity时,android会保存一份数据,称为instance state。这个instance state是一个Bundle对象。但是默认的行为提供的功能非常有限,为了能够实现activity在重建时能够恢复数据,需要使用onSaveInstanceState()函数和ViewModel类,参考这里。重写onSaveInstanceState()时需要显式调用super的onSaveInstanceState()以保存view。一般要求每个View对象都有明确的android:id。
恢复activity state。恢复时android向onCreate()和onRestoreInstanceState()函数提供之前存储的Bundle对象。若是新创建的avtivity而非恢复的,那么此Bundle对象是null。在onCreate()中需要最先调用super的onCreate()函数。推荐使用onRestoreInstanceState(),此时无需检测Bundle对象是否是null。需要最先调用super的onRestoreInstanceState()。
manifest
声明activities
需要在manifest文件中的<application> element中增加<activity> element。<activity>的属性中,仅有android:name是必须的,这个属性即为这个activity对应的java类。publish过的app,activity的名称是不能改变的。参考这里。
<activity> 的属性参考这里。
声明intent filter
intent filter指明了activity可以执行的任务。<intent-filter> element的属性参考这里。<intent-filter>必须包含<action> element。android预定义的action可以在Intent类的文档中查到,API27。
Lifecycle callbacks
注意,activity在android系统中,有get/lost focu和is/not visible两种状态类别.onCreate()
必须实现这个函数。所有仅需执行一次的初始化过程。
onStart()
activity变得可见时调用此函数。注册BroadcastReceiver。onResume()
activity此时开始与用户交互,activity停留在该函数中直到失去用户交互。由于activity将在Resume state和Pause state之间切换,android在每次切换到Resume state时,都将调用onResume()函数。在onResume()函数中可对某些资源进行重新获取或者初始化。这些资源应当在Pause state中得到释放。
onPause()
activity进入Pause state,释放资源。在onPause()中不要执行过于heavy或者耗时的操作,例如访问数据库或者网络,这些工作在onStop()中进行。activity在进入Pause state后不是立即进入Stop state,而是取决于当时的情形。实际上进入Pause state后,activity可能仍可见,此时若重新变成焦点,那么android将调用onResume()来还原。当activity从可见变为不可见,那么onStop()将会被调用。
onStop()
当activity不可见时,将进入Stopped state。此时释放绝大多数资源,并且进行访问数据库等操作。但是android系统会通过onRestart()重新进入activity,此时无需对onResume()之前的数据进行重新初始化,因为android会在Stopped state时自动保存。onDestroy()
在终止前的最后调用。可以使用isFinishing()来判断是主动退出还是系统终止。有时当设备冲竖直状态切换到水平状态时,android系统也会调用onDestroy()并立即调用onCreate()。在Activity之间切换
使用startActivity()或者startActivityForResult()函数切换到一个新的activity上,无论采用哪种,都需要提供一个Intent对象。若不需要有返回数据,则使用startActivity()。
若需要从activity中获得处理的数据,那么使用startActivityForResult()函数,并提供一个int类型的标识符。在被调用的activity返回之后,通过onActivityResult()函数获取之前所需的数据。onActivityResult()函数看起来是需要一个activity自行重写的。
在Activity A启动Activity B的过程中,activity的life cycle如下
(1)A的onPause()函数被调用。
(2)B的onCreate(), onStart(), onResume()函数被调用。
(3)当A在屏幕上不可见时,A的onStop()函数被调用。
一个activity终止有多种情况,当android系统由于资源调度而终止了处于stop状态的activity时,android会保存一份数据,称为instance state。这个instance state是一个Bundle对象。但是默认的行为提供的功能非常有限,为了能够实现activity在重建时能够恢复数据,需要使用onSaveInstanceState()函数和ViewModel类,参考这里。重写onSaveInstanceState()时需要显式调用super的onSaveInstanceState()以保存view。一般要求每个View对象都有明确的android:id。
恢复activity state。恢复时android向onCreate()和onRestoreInstanceState()函数提供之前存储的Bundle对象。若是新创建的avtivity而非恢复的,那么此Bundle对象是null。在onCreate()中需要最先调用super的onCreate()函数。推荐使用onRestoreInstanceState(),此时无需检测Bundle对象是否是null。需要最先调用super的onRestoreInstanceState()。
相关文章推荐
- Android Activity和Intent机制学习笔记
- Android Activity和Intent机制学习笔记
- 2011年Android Activity生命周期学习笔记
- 关于Android中保存activity的状态的几点学习笔记
- Android Activity和Intent机制 学习笔记(显示网页,显示地图,打电话)
- Android 学习笔记(十三):Activity-GridView
- Android PreferenceActivity 学习笔记
- Android开发学习笔记-3 Activity-2 Activity和Intent关系
- Android开发学习笔记-2 Activity-1 基础
- Android入门学习笔记(四):Activity初步
- android 入门学习笔记 利用bundle实现android,activity间消息的传递
- Android Activity和Intent机制学习笔记
- Android开发学习笔记-4 Activity-3 常用控件
- android 学习笔记(1) ExpandableListActivity 自定义view
- Android TabActivity——学习笔记
- Android开发学习笔记-5 Activity-4 Activity生命周期
- Android Activity和Intent机制学习笔记
- Android(OPhone) 学习笔记 - Intent和Activity(2)
- Android 学习笔记(十五):Activity-GalleryView
- android 学习笔记 1 activity