一言不合就让我写android了!!!!!!!!!!!!!!
来到公司后被分到了一个写android的组,虽然在大四的时候看过一点关于android的书,不过对android还是一无所知,所以现在让我来写android就是让我从头来写android啊!
以上都是废话
Activity是android四大组件之一,也是我第一个接触的内容
Activity重要的知识点有
1,怎么创建Activity
2,Activity之间的交互(包括信息传递,内容保存)
3,Activity的生命周期
4,Activity的启动模式
一,创建Activity
其实这个很简单,创建一个class继承activity,然后可以重写它的一些函数,如oncreate,onstart,onresume,onpause,onstop,ondestory等等
当然,在我看来,oncreate是必须的,基本上大家都习惯在这个函数里给Activity添加布局,及处理一些事件,如button的点击事件等
但是如果你想让别人知道启动你这个Activity需要传入什么数据,方便别人调用你编写的Activity的话,最好写一个函数actionStart,这个函数不仅让别人知道怎么启动你写的活动,也让别人启动你的活动的方法更加简单
二,Activity之间的交互
对于这一点,大多数情况下都是使用Intent,启动一个活动有两种方法,显示启动和隐式启动,显示启动就是直接在Intent中指明要启动哪个活动,这个很简单,二隐式启动就要给Intent添加action,category和data,只有匹配的时候才会启动相应的Activity,不过也有可能启动活动时没有匹配的,于是程序就会出错,所以我们隐式启动时可以先调用PackageManager的resolveActivity方法和Intent的resolveActivity方法来进行判断,如果没有找到合适的,这两个方法就会返回null,当然还有一个方法就是PackageManager的queryIntentActivity方法,不过这个方法返回的并不是最适合的Activity,它将会返回所有能匹配的Activity。
活动之间的交互还有就是调用活动时向下一个活动传递数据,或者返回数据给上一个活动,同时也会用保存当前活动的临时数据,方便下一次活动可见时恢复数据
向下一个活动传递数据直接调用Intent的putExtra就可以了
传递数据给上一个活动就比较麻烦一点,首先我们应该使用startActivityForResult,然后在另一个活动结束时调用setResult返回数据,不过我们还需要在上一个活动中重写onActivityResult方法来获取返回的数据,如果用户是点击back键来返回的话,就要重写onBackPressed来调用setResult了。
保存当前活动的数据,我们可以使用onSaveInstanceState方法,这个方法一定会在活动被回收之前调用,里面有一个Buddle,我们可以把数据保存在里面,而且我们在oncreate里面就会有这个Buddle,可以在oncreate里面恢复数据
三,Activity的生命周期
在创建Activity的时候就说过了,可以重写的那些方法就代表了它的生命周期,生命周期可分为三个阶段,完整生存期,可见生存期,前台生存期
四,Activity的启动模式
大致美味四种模式,standart,singletop,singletask,singleinstance
启动模式设置有两种方法
1,直接在xml文件中android:launchmode中指明
2,在Intent中指明
整体学了这些,有的细节没写出来,比如back stack,指明在哪个back stack等等,相信还有很多Activity的知识以后会碰到,暂时总结那么点吧!