【Android】SingleTask与SingleInstance的区别
来源:互联网 发布:腾讯云的cdn地域名 编辑:程序博客网 时间:2024/05/21 09:56
现有2个项目,taskA、taskB。taskA负责调用taskB中指定的界面。
taskB中有3个界面,a、b、c,每个界面显示它所在的task id。
SingleTask:
其中b界面被声明为SingleTask。
先运行taskB,显示a界面,由a界面调用b界面,这时b界面的taskid与a界面的taskid是一致的,说明b界面与a界面在同一个task中;由b界面调用c界面时,c界面的taskid与a和b界面的taskid一致,说明这三个界面是在同一个task中。当前显示的是c界面,此时按Home键回到桌面,运行taskA的界面调用taskB的b界面,这时b界面显示出来,它的taskid没有变,还是之前的taskid,只不过之前显示的是c界面,这时c界面已经不知所踪,这时再按back键,则回到了a界面,然后是taskA的界面。
这说明,SingleTask所标注的Activity在被自身的app调用时,是不新建task的,同时,如果系统中存在了这个SingleTask界面的实例时,会将其所在的task切换到前台,并把SingleTask界面之后开启的其他界面全部关闭(有待考证是否关闭)。
另外有一种情况,例如:a界面被调用,这时按Home键返回到桌面,启动taskA,并调用b界面,这时b界面的taskid与a界面的一致,说明b界面与a界面同属于一个task。如果直接运行taskA调用b界面,b的taskid与taskA的界面的taskid不同,说明在新task中实例化了b界面,由b界面调用c界面,c界面的taskid与b界面一致,说明b与c同属于一个task。
SingleInstance:
将b界面声明为SingleInstance。
先运行taskB,显示a界面,由a界面调用b界面,这时b界面的taskid与a界面的taskid不同,说明b界面是在新task中生成的实例;由b界面调用c界面,c界面的taskid与a界面的taskid相同,说明a、c界面同属于一个task。
由此可以看出SingleTask与SingleInstance是有本质区别的,而不是像网上说的那样,都是task的root activity,这是有错误的。
- 【Android】SingleTask与SingleInstance的区别
- 【Android】SingleTask与SingleInstance的区别
- 【Android】SingleTask与SingleInstance的区别
- SingleTask SingleInstance的区别
- singleTask和singleInstance的区别
- Android-Activity lunchmode(SingleTask和SingleInstance)的区别
- Android singleTask或singleInstance与startActivityForResult冲突
- launchMode中singleTask和singleInstance的区别
- onActivityResult与singleTask或singleInstance的
- Activity的launchMode:singleTop,singleTask与singleInstance
- Activity的launchMode:singleTop,singleTask与singleInstance
- Activity的launchMode:singleTop,singleTask与singleInstance
- singleInstance 与 singleTask
- android Activity中standard singleTop singleTask singleInstance四种加载模式的区别
- android中Activity的启动模式是singleTask或singleInstance与startActivityForResult,onActivityResult
- Android singleTask或singleInstance与startActivityForResult冲突解决
- Android singleTask或singleInstance与startActivityForResult冲突解决
- Android singleTask或singleInstance与startActivityForResult冲突解决
- Oracle DBWR,LGWR,CKPT,ARCH 触发条件 总结
- JQ学习日志01
- 我在想好哥们结婚送什么礼好,各位兄弟姐们帮忙想想吧!!!!
- C/C++ 向mysql数据库读取、写入中文的解决方法
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题(二)
- 【Android】SingleTask与SingleInstance的区别
- linux下svn命令大全
- Makefile编写入门
- 百度笔试题:malloc/free与new/delete的区别
- 头文件搜索路径
- Orace ITL(Interested Transaction List) 说明
- 继续干IT的十个理由
- Flex 4 Gumbo DOM Tree API - Functional and Design Specification(转)
- Oracle Buffer Cache 原理