您的位置:首页 > 移动开发 > Android开发

【Android】【笔记】《Android 入门经典》part 6 Activity

2016-01-30 23:35 477 查看
本文为个人读书笔记,大部分为书中内容摘要。仅供记录和分享学习中遇到的需要留意的问题,如有相关版权问题请及时通知作者。

简介
Activity是ndroid系统提供的一个可视的用户交互接口,所有和用户的交互都发生在这里。Activity在创建时生成各种控件视图,这些视图负责具体功能。

Activity的作用
Activity是Android程序中最基本的模块,它是为用户操作而展示的可视化界面。可以只有一个,可以包含多个。
每个Activity都被赋予一个默认的窗口进行绘制,一般为满屏的,但也可以是小的浮动窗口。一个Activity还可以使用超过一个的窗口。
Android窗口显示的可视内容是由视图构成的,这些视图继承自View类。每个视图控制窗口中一块矩形空间,父级视图包含并组织子视图的布局,底层视图在它们控制的矩形中进行绘制,对用户操作做出响应,所以,视图是Activity与用户交互的界面。

Activity的四种状态
Runing:一个新Activity启动入栈后,在屏幕最前端,处于栈的最顶端,处于可见并可和用户交互的激活状态
Paused:当Activity被另一个透明或者Dialog样式的Activity覆盖时的状态,此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以仍然可见,但已经失去焦点,不可与用户交互
Stopped:当Activity不可见时,处于Stopped状态。Activity继续保留在内存中保持当前的所有状态和成员信息,假设系统别的地方需要内存的话,这是它是被回收对象的主要候选。当Activity处于Stopped状态时,一定要保存当前的数据和当前的UI状态,否则一旦Activity对出或者关闭时,当前的数据和UI就丢失了。
Killed:Activity被杀掉以后或者被启动以前处于Killed状态。这是Activity已被移除Activity堆栈中,需要重新启动才可以显示和使用。

Activity的属性
Android中,Activity是作为一个对象存在的,因此,它与Android中的其他对象类似,也支持很多XML属性,Activity支持的常用属性

XML属性描述
android:name指定Activity对应的类名
android:theme主题
android:label设置显示的名称,一般在Launcher里面显示
android:icon显示的图表,在Launcher里显示
android:screenOrientation指定当前Activity显示横竖
android:allowTaskReparenting是否允许Activity更换从属的任务,比如从短信息任务切换到浏览器任务
android:alwaysRetainTaskState当用户离开一个Task一段时间后,系统就会清理掉Task里除了根Activity意外的Activity,如果一个Task例的根Activity的alwaysRetainTaskState设置为true,那么前面的情况就不会出现。Task会保留所有的Activity
android: clearTaskOnLaunch根Activity是true时,当用户离开Task并返回时,Task会清除直到根Activity
android:configChanges当配置list发生修改时,是否调用onConfigurationChanged()方法
android:excludeFromRecentes是否可悲显示在最近打开的Activity列表里
android:exported是否允许Activity被其他程序调用
android:launchMode设置Activity的启动方式standard、singleTop、singleTask、singleInstance,前两个一组,后两个一组
android:finishOnTaskLaunch当用户重新启动这个任务的时候,是否关闭已打开的Activity
android:noHistory当用户切换到其他屏幕时,是否需要移除这个Activity
android:taskAffinityActivity的亲属关系,默认情况同一个应用程序下的Activity有相同的关系
android:process 一个Activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程组中,这个进程名跟应用程序包名一致
android:windowSoftInputMode定义软键盘弹出的模式
AndroidManifest.xml中
<intent-filter>设置Activity作为程序入口,该属性用来设置Activity作为程序入口,并且显示在启动栏中
其中的<action android:name=“android.intent.action.MAIN”/>属性用来定义Activity作为Android应用程序的入口
<category android:name="android.intent.category.LAUNCHER"/>属性指定Activity显示在Launcher里。

Activity的生命周期

概述:
Android程序创建时,系统会自动在其.java文件中重写Activity类的onCrete方法,该方法是创建Activity时必须调用的一个方法,另外还有onStart、onResume、onPause、onStop、onRestart、onDestroy。共7个方法,这7个方法定义了Activity的完整声明周期,该完整周期又可以分成3个嵌套生命周期循环。分别是:
前台生命周期:从onResume()调用起,至相应的onPause()调用为止。这个期间,Activity位于前台最上面并与用户进行交互,Activity会经常在暂停和恢复之间进行状态转换。设备进入休眠或有新的Activity启动时,调用onPause()方法,Activity获得结果或接受到新的Intent时,会调用onResume()方法。
可视生命周期:从onStart()调用开始,直到响应的onStop()结束。在此期间,用户可以在屏幕上的Activity,可以不位于前台或不与用户交互。在这两个方法之间,可以保留用来向用户显示这个Activity所需的资源。
完整生命周期:自第一次调用onCreate()开始,直到调用onDestroy()为止。Activity在onCreate()中设置所有“全局”状态以完成初始化。在onDestroy()中释放所有系统资源。

Activity的方法:
onStart:用来启动Activity
[align=left] @Override[/align]
protectedvoidonStart()
{
//
TODO
自动生成的方法存根
[align=left] super.onStart();[/align]
[align=left] }[/align]
onResume:用来恢复Activity
[align=left] @Override[/align]
protectedvoidonResume()
{
//
TODO
自动生成的方法存根
[align=left] super.onResume();[/align]
[align=left] }[/align]
onPause:用来暂停Activity
[align=left] @Override[/align]
protectedvoidonPause()
{
//
TODO
自动生成的方法存根
[align=left] super.onPause();[/align]
[align=left] }[/align]
onStop:用来停止Activity
[align=left] @Override[/align]
protectedvoidonStop()
{
//
TODO
自动生成的方法存根
[align=left] super.onStop();[/align]
[align=left] }[/align]
onRestart:用来重启Activity
[align=left] @Override[/align]
protectedvoidonRestart()
{
//
TODO
自动生成的方法存根
[align=left] super.onRestart();[/align]
[align=left] }[/align]
onDestroy:用来销毁Activity
[align=left] @Override[/align]
protectedvoidonDestroy()
{
//
TODO
自动生成的方法存根
[align=left] super.onDestroy();[/align]
[align=left] }[/align]

四种基本Activity操作

创建:
启动:
在AndroidManifest.xml主设置文件中对要启动的Activity进行配置。
[align=left] <activity[/align]
[align=left] android:name="com.example.and_testapplication.MainActivity"[/align]
[align=left] android:label="@string/app_name">[/align]
[align=left] <intent-filter>[/align]
[align=left] <actionandroid:name="android.intent.action.MAIN"/>[/align]
[align=left] <categoryandroid:name="android.intent.category.LAUNCHER"/>[/align]
[align=left] </intent-filter>[/align]
[align=left] </activity>[/align]
配置完Activity方法之后,可以通过关联的事件启动Activity,在关联事件中可以通过startActivity方法或者startActivities方法实现
1、startActivity
用来启动单个Activity
public void startActivity(Intent intet)
intent表示要启动的Intent对象【8.3】
2、startActivities
用来同时启动多个Activities
public void startActivities (Intent[ ] intents)
参数intents表示要启动的多个Intent对象数组

多个Activity之间的传值:
需要使用Intent对象的putExtra方法、getExtras方法和Bundle对象

关闭Activity:
使用finish()方法实现
public void finish();
在Android程序中,如果要关闭当前的Activity,直接使用finish();即可。
还可以使用finishActivity方法实现,该方法用来关闭使用startActivityForResult方法启动的Activity,该方法的语法 中有一个int类型的参数,用来表示Activity的请求标识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 入门 Activity