读书笔记--Activity的启动

来源:互联网 发布:淘宝卖视频教程赚钱吗 编辑:程序博客网 时间:2024/05/29 19:41

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()方法来设置处理结果

0 0
原创粉丝点击