Activity是Android应用的重要组成部分。
1.Activity的分类。
在不同的场景下,可以让自己的Activity继承不同的Activity基类。比如LauncherActivity、ListActivity、TabActivity 、ExpandableActivity等。在特定的Activity中,不需要使用setContentView方法指定显示页面,只需要设置适配器即可显示内容。
2.Activity的配置
在AndroidManifest.xml文件中,可以对Activity进行设置。
name指Activity实现类的类名,icon指Activity图标,lable指标签,exported指定该Activity能否被## 其他应用 ##调用。lanchermode指定Activity的启动模式。另外还可以设置指定Activity可响应的Intent.
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
具有以上标识的为Application的入口程序。
activity的启动模式有standard、singleTop、singleTask、singleInstance四种。standard模式为默认模式,每次都会新建一个新的实例,添加到当前的栈中。singleTop与standard相似,一点不同就是如果要启动的activity已经位于task栈顶时,系统不会新建activity实例。singleTask这种模式,同一个task内一个activity只会有一个,如果要启动的activity位于栈顶,此时与singletop行为相同,如果不在栈顶,就会把activity上面的其他activity移除,是目标activity位于栈顶。如果目标activity不存在,就会新建实例,位于栈顶。singleInstance无论从哪个task中启动目标activity只会创建一个activity,并会使用一个全新的task加载activity。如果目标activity,系统新建task,新建activity,并把activity放在task栈顶,如果目标activity已经存在,无论在那个应用程序中,位于哪个task中,系统都会把activity所在的task转到前台。另外,使用singleInstance模式加载activity总是位于task栈顶且只所在的task只包含该activity。
3.activity的启动、关闭
启动activity可以使用 startActivity(Intent),startActivityForResult(Intent,requestCode);其中startActivityForResult可以启动指定activity,并获取指定activity返回的结果。
关闭activity可以使用finish()、finishActivity(). 其中finishActivity关闭startActivityForResult启动的Activity。
另外Intent启动activity有隐式和显式两种。显式启动在intent中指定目标activity,隐式启动需要在AndroidManifest.xml中进行设置,使用Intent-filter进行操作。
4.传递数据
不同的activity中传递数据可以使用Intent的方法。
5.activity的回调
activity被部署以后,随之应用程序的运行,activity会在不同的状态之间进行切换,activity的特定的方法就会被回调。activity的不同状态就是activity的生命周期。
onCreate onStart onResume onPause onStop OnDetory
其中 activity处于onResume的时候可以进行操作,处于onStart的时候可以看见。