在Android里,app和process和task是三个不同的概念.
process是一个继承自Linux的概念,一般一个app会有一个uid,一般会独立地开一个process。
但是,也会有多个app共享一个process或者uid的,这个可以自己指定。
task是一个activity的栈,其中"可能"含有来自多个App(不一定在同一process中)中的activity。
ActivityManager类可以获取运行信息,如下:
- getRecentTasks() 最近开的task,HOME键长按会看到这个
- getRunningAppProcesses() 运行中的作为app容器的process
- getRunningServices() 运行中的后台服务
- getRunningTasks() 运行中的任务
如果一个Activity “mainActivity”不是作为task的root activity打开的,而是被别的Task中Activity调用,那么mainActivity对应的process是开着的,这时我们是否要显