Intent和Activity知识点总结

时间:2021-06-03 06:44:23

1、Intent的跳转传值
2、Intent的隐式启动(用于不同应用中)与显示启动(同一应用中)
3、Activity的生命周期
    void onCreate()——Activity已经被创建完毕,创建时调用
    void onStart()——Activity已经显示在屏幕,但没有得到焦点
    void onResume()——Activity得到焦点,可以与用户交互
    void onPause()——Activity失去焦点,无法再与用户交互,但依然可见
    void onStop()——Activity不可见,进入后台
    void onDestroy()——Activity被销毁
    void onRestart()——Activity从不可见变成可见时会执行此方法
4、Activity的四种启动模式
    standard 标准启动模式  默认
    singleTop 单一顶部模式——如果任务栈的栈顶存在这个要开启的activity,不会重新的创建activity,而是复用已经存在的activity。保证栈顶如果存在,不会重复创建。
    ——> 应用场景:浏览器的书签、短信回话列表
    singeTask 单一任务栈,在当前任务栈里面只能有一个实例存在——当开启activity的时候,就去检查在任务栈里面是否有实例已经存在,如果有实例存在就复用这个已经存在的activity,并且把这个activity上面的所有的别的activity都清空,复用这个已经存在的activity。保证整个任务栈里面只有一个实例存在
    ——> 应用场景:浏览器的activity,如果一个activity的创建需要占用大量的系统资源(cpu,内存)一般配置这个activity为singletask的启动模式【其他的网页放在缓存中】。webkit内核 c代码
    singleInstance【单例模式】启动模式非常特殊, activity会运行在自己的任务栈里面,并且这个任务栈里面只有一个实例存在——在一个单独的任务栈中创建该Activity的实例,然后再也不会创建第二个实例了,以后的每次启动该Activity,都是把该Activity所在的栈显示至前台
    ——> 应用场景: 电话来电界面
    注:返回时,是一个一个栈退出的,不进行跳转
5、Activity销毁时传递值
    A界面跳转至B界面,B界面点击后回到A界面,同时将值传到A界面上显示
    <1> 在A界面启动Activity是要用startActivityForResult(),获取返回至
    <2> 在A界面使用onActivityResult(),得到值及显示
    <3> B界面实现值传递就是putExtra(),然后通过setResult(0,intent),把这个Intent对象传递给上一个Activity
    <4> 通过判断请求码和结果码确定返回值的作用 --> 当有多个B界面时
requestCode --> 请求码,判断数据来自于哪个Activity
resultCode --> 结果码,判断数据是来自Activity的什么数据