Android群英传读书笔记第八章(Activity与Activity调用栈分析)

来源:互联网 发布:什么软件有烟雾 编辑:程序博客网 时间:2024/06/05 15:52

Activity启动模式

SingleTop模式通常用于接收到消息后显示的界面,例如QQ接收到消息后弹出Activity,如果一次来10条消息,总不能一次弹10个Activity。

如果启动模式为SingleTask的Activity已经在后台一个任务栈中,那么启动会,这个后台任务栈将一起被切换到前台。

这种启动模式通常可以用来退出整个应用:将主Activity设置为SingleTask模式,然后在要退出的Activity中转到住Activity中,从而将主Activity之上的Activity都清除,然后在主Activity的onNewIntent方法中写上finish,结束最后一个Activity.

SingleInstance启动模式的使用和浏览器类似,出现在新的任务栈,而且是共享的。通常用于需要与程序分离的界面。

如果在一个singleTop或者singleInstance的Activity中通过startActivityForResult方法来启动另外一个Activity,那么系统将直接返回Activity.RESULT-CANCELED.因为不同Task之间是不能传递数据的。

Intent Flag 启动模式

常用的flag如下:

  • Intent.FLAG_ACTIVITY_NEW _TASK
    使用一个新的task来启动Activity,启动的每个Activity都在一个新的task中,通常使用在从Service中启动Activity的场景。
  • FLAG_ACTIVITY_SINGLE_TOP
    与启动模式singleTop相同
  • FLAG_ACTIVITY_CLEAR_TOP
    与singleTask相同
  • FLAG_ACTIVITY_NO_HISTORY
    不保存在历史栈,启动后消息
0 0
原创粉丝点击