android 任务栈 进程 应用 各有什么联系??

android 任务栈 进程 应用 各有什么联系?我知道一个应用开启时会开启一个进程,同时会有一个任务栈。但是,当某些activity的启动模式为newtask时,那么这个activity有开启了一个新的任务栈,那么它是在当前的进程里面吗?能共享之前任务栈里的数据吗?

2个回答

安卓启动模式有四种,standard 模式和 singleTop 模式都会开启一个新的任务栈。
也就是这个 Activity 创建了一个新的实例对象,你要共享的数据是什么?如果是之前开启的activity里的成员变量或是局部变量,那当然不能共享。如果是应用里持久化存储的数据,那么是可以的,如数据库,SharedPreferences文件中的数据,那么是可以共享的
另外一个应用默认只有一个进程,所以无论有开启多少任务栈,还是在当前的进程中(除非你手动开启了另外的进程)

qq_35071078
下课睡觉 感觉你说的不是很对。不给activity设置启动模式的话,activity默认的是standard,standrad默认会在当前的任务zhan中,不会创建新的任务栈。
大约 3 年之前 回复
kuaiguixs
wang_android 回复下课睡觉: 任务栈只有一个。由Android系统管理的
3 年多之前 回复
qq_35071078
下课睡觉 standard模式启动activity,不会开启新的任务栈吧。
3 年多之前 回复
kuaiguixs
wang_android 回复下课睡觉: 会的。确切的说是,每启动一个activity,就创建一个新的实例存入任务栈中。任务栈也里以先进后出的形式保存了所有启动过还没被销毁的的活动,所以任务栈一般叫回退栈
3 年多之前 回复
qq_35071078
下课睡觉 standard也会创建新的任务栈吗?
3 年多之前 回复

上面这个回答并不对!standard和singleTop怎么会开启一个新的任务栈??四个启动模式里面只有SingleInstance启动模式才会创建一个新的任务栈。在这个程序内创建的新任务栈也会在当前的进程中,不同的任务栈之间的Activity不能直接传递值,要通过Binder的方式才能传值。另外,通过指定TaskAffinity来指定栈名也可以创建新的任务栈。

立即提问