Skip to content

ronghao/AndroidLaunchModeSample

Repository files navigation

参考文档

场景

  • standard +
  • singleTop
    • 搜索功能
      • 搜索功能默认页面,调到收缩结果页面,不会top叠加,不发生跳转,但执行搜索功能返回数据通过onNewIntent返回
    • 接收通知启动的内容显示页面
  • singleTask
    • 作为程序入口点,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面
  • singleInstance
    • 适合需要与程序分离开的页面
    • 不要用于中间页面

结论

  • standard
    • 默认标准的启动模式
    • 点击顺序 1->2->3->1
    • 任务栈 [栈顶]1[栈底]->[栈顶]21[栈底]->[栈顶]321[栈底]->[栈顶]1321[栈底]
  • singleTop
    • 单一顶部
    • 点击顺序 1->2->3->3
    • 任务栈 [栈顶]1[栈底]->[栈顶]21[栈底]->[栈顶]321[栈底]->[栈顶]321[栈底]
    • 栈顶为3,不会创建新的activity3,会调用onNewIntent
    • 单一任务栈
    • 没有设置taskAffinity
      • 点击顺序 1->2->3->2
      • 任务栈 [栈顶]1[栈底]->[栈顶]21[栈底]->[栈顶]321[栈底]->[栈顶]21[栈底]
      • 最后一步,2Activity已存在与任务中,系统会调用 **onNewIntent()**向其传值,其顶部Activity会被推出
    • 当设置了taskAffinity,而且要启动的activity的taskAffinity 以前没有被创建过,则新建一个task存储Activity
      • 点击顺序 1(taskAffinity task1)->2(taskAffinity task2)->3(taskAffinity task3)->2(taskAffinity task2)
      • 任务栈 [栈顶]1[栈底]->[栈顶]2[栈底][栈顶]1[栈底]->[栈顶]3[栈底][栈顶]2[栈底][栈顶]1[栈底]->[栈顶]2[栈底][栈顶]3[栈底][栈顶]1[栈底]
  • singleInstance
    • 单一实例
    • 点击顺序 1->2
    • 任务栈 [栈顶]1[栈底]->[栈顶]2[栈底][栈顶]1[栈底]

清空回退栈

属性 描述
alwaysRetainTaskState Task 也将在栈中保持所有的 Activity
clearTaskOnLaunch 即使在离开很短的时间,也会将返回 Task 的初始状态
finishOnTaskLaunch 这个属性类似 clearTaskOnLaunch,作用于单个 Activity

About

Android LaunchMode的示例

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages