赞
踩
Activity有四种启动模式:standard、singleTop、singleTask、singleInstance
onCreate()、onStart()、onResume()
方法。onCreate()、onStart()
方法不会调用,会回调onNewIntent()
方法,通过onNewIntent()
的参数,可以获得当前请求的信息。如果该Activity不是位于栈顶,仍然会重新创建。onNewIntent()
方法。对于启动模式为singleTask的Activity,在启动时,回先去寻找其所在的任务栈,如果存在,则判断栈内是否存在该实例,如果实例存在,在会调用onNewIntent()
方法,如果不存在,则创建实例并放入栈中。如果栈和实例均不存在,则会创建新的栈和实例。什么叫Activity相关的任务栈?
涉及到一个参数TaskAffinity,标识了一个Activity所需的任务栈的名字,默认情况下,均为应用的包名。我们可以指定TaskAffinity属性值,但是必须与所在包名不同,否则,没有效果。
一般TaskAffinity与singleTask 或 allowTaskRePartenting 属性配对使用。
adb命令,抓取Activity
adb shell dumpsys activity
可根据 Run Activity(most recent first)中查看任务栈及Activity信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。