Activity间接或直接地继承来Context、ContextWrapper、ContextThemeWrapper等基类
LauncherActivity继承自ListActivity,它开发出来的列表界面中,每个列表项都对应一个Intent,因此当用户单击列表项时,程序会启动对应的Activity
需要设置Adapter
继承LauncherActivity时,应该重写Intent intentForPosition( int position )方法
ExpandableListActivity,用于显示一个可展开的列表窗口
PreferenceActivity,用于显示一个显示设置选项参数并保存的窗口
参数会保存在 /data/data/<应用程序包名>/shared_prefs 路径下,文件名为 <应用程序包名>_preferences.xml
manifest中配置Activity时,需要指定几个属性:name(对应类名),icon(图标),label(标签),exported(是否允许被其他应用调用),launchMode(加载模式)
Activity可以指定一个或多个<intent-filter.../>元素,用于指定该Activity可响应的Intent
由Activity启动其他Activity有两个方法:
startActivity( Intent intent )
startActivityForResult( Intent intent, int requestCode )
通过Intent还可以启动Service
关闭Activity有两个方法
finish()
finishActivity( int requestCode ),结束以startActivityForResult( Intent intent, int requestCode )方法启动的Activity
Intent提供来多个重载的方法来携带Activity之间需要交换的数据
putExtras( Bundle data ) Bundle getExtras()
putExtra( String name, Xxx value ) getXxxExtra( String name ) 如果Intent已经携带了Bundle对象,则向该Bundle存入数据,否则会先创建一个Bundle
Bundle对象包含来多个方法来存入数据
putXxx( String key, Xxx data ) getXxx( String key )
putSerializable( String key, Serializable data ) getSerializable( String key, Serialzable data ) 存取可序列化的对象
启动其他Activity并返回结果,通过Bundle传递数据
当前Activity需要重写onActivityResult( int requestCode, int resultCode, Intent intent )方法,当被启动的Activity返回结果时,该方法会被触发
其中requestCode可以表明是由哪个请求所触发的结果,resultCode可以表明返回的数据来自于哪个Activity
被启动的Activity需要重写setResult()方法来设置处理结果