简单介绍Android开发中的Activity控件的基本概念

2019-12-10 19:46:10丽君

  Activity的加载模式受启动Activity的Intent对象中设置的Flag和manifest文件中Activity的元素的特性值交互控制。

  下面是影响加载模式的一些特性

  核心的Intent Flag有:

  •   FLAG_ACTIVITY_NEW_TASK
  •   FLAG_ACTIVITY_CLEAR_TOP
  •   FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
  •   FLAG_ACTIVITY_SINGLE_TOP

      核心的特性有:

    •   taskAffinity
    •   launchMode
    •   allowTaskReparenting
    •   clearTaskOnLaunch
    •   alwaysRetainTaskState
    •   finishOnTaskLaunch

        四种加载模式的区别

        所属task的区别

        一般情况下,“standard”和”singleTop”的activity的目标task,和收到的Intent的发送者在同一个task内,就相当于谁调用它,它就跟谁在同一个Task中。

        除非Intent包括参数FLAG_ACTIVITY_NEW_TASK。如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别的task里。

        “singleTask”和”singleInstance” 总是把要启动的activity作为一个task的根元素,他们不会被启动到一个其他task里。

        是否允许多个实例

        “standard”和”singleTop”可以被实例化多次,并且是可以存在于不同的task中;这种实例化时一个task可以包括一个activity的多个实例;