美文网首页
Activity知识要点

Activity知识要点

作者: 灼灼其华_b157 | 来源:发表于2018-09-08 00:03 被阅读0次

    1.Activity生命周期

    生命周期有七个方法

    onCreate() , onStart(), onResume() , onPause(), onStop(),onRestart(), onDestroy();

    2.onStart()和onResume()/onPause()和onStop()的区别?

    在这些方法中,onStart()方法处于可见但不处于前台,而onResume()处于可见且在前台,另外的两种方法和onStart和onResume()是相对应的,同理

    3.Activity A启动另一个Activity B会回调哪些方法?如果启动的是一个Dialog呢?

    1.在A启动B时,首先A会调用自己的onPause()方法,然后B调用onCreate()→onStart()→onResume()→A的onStop()方法

    打开一个新Activity:

    A的onPause() -->B 的Activity的onCreate()-->onStart()-->onResume()-->A的Activity的onStop()

    2.启动的如果是对话框Dialog,则只会执行A的onPause()方法,而不会执行A的onStop()方法,这时候A只处于暂停状态还没有处于停止状态

    A的Activity的onPause()-->B的onCreate()-->onStart()-->onResume()

    4.onSaveInstanceState()方法?何时会调用?

    这个方法在活动被回收的时候调用,用于保存活动的临时数据,在活动重建之后可以恢复数据

    5.onSaveInstanceState()与onPause()的区别?

    onSaveInstenceState()用于保存临时数据,而onPause()方法中用于保存持久化数据

    6.配置改变时Activity的重建

    在切换手机横竖屏时,Activity会被杀死重建,这个时候会用到我们上面讲的onSaveInstanceState()方法

    会先调用onSaveInstanceState来保存切换时的数据,接着销毁当前的Activity,然后重新创建一个Activity,再调用onRestoreInstanceState恢复数据

    7.Activity的四种启动模式?

    1.standard 标准模式

     每当一个新的活动启动时,栈中都会创建一个新的实例,不管栈中是否存在此活动

    2.singerTop 栈顶复用模式

    启动活动时,如果发现活动在栈中且处于栈顶位置,则栈中不会创建新的实例,并回调onNewIntent(intent)方法。

    3.singerTask 栈内复用模式

    启动活动时如果活动在栈中存在,就不会重建,而是把此活动之前的栈顶活动全部出栈,让活动处于栈顶,如果不存在则创建新的实例

    4.singerInstance 单实例模式

    具有此模式的Activity只能单独位于一个任务栈中,且此任务栈中只有唯一一个实例。

    8.如何启动其他应用的Activity?

    Intent用于启动其他的活动,又分为显示启动和隐式启动,显示启动直接用活动名启动

    隐式启动通过Manifest中的action和category信息去启动新的活动

    相关文章

      网友评论

          本文标题:Activity知识要点

          本文链接:https://www.haomeiwen.com/subject/eoicgftx.html