任何人都可以告诉我Android中的任务和流程有什么区别.如果我使用此代码段.
ActivityManager Appmgr;
protected List<ActivityManager.RunningTaskInfo> apps;
protected List<ActivityManager.RunningAppProcessInfo> applications;
applications = Appmgr.getRunningAppProcesses();
apps = Appmgr.getRunningTasks(30);
Run Code Online (Sandbox Code Playgroud)
是什么区别applications = Appmgr.getRunningAppProcesses()和 apps = Appmgr.getRunningTasks(30).
请帮我.问候
小智 8
之前的"答案"是另一个未知主题的替代.问题是关于系统定义,而不是关于如何接收相关信息以及方法和类之间的差异.
实际上在Android task = application中是一组活动.
进程是通过内存分离来划分的,并且运行的线程集是分离的内存.
默认应用程序是一个过程.通过使用"活动","服务","接收器"中的"android:process"属性以及清单时间内可执行单元的其他定义,开发人员能够通过进程定义另一个分离.
请参阅http://developer.android.com/guide/components/processes-and-threads.html
返回RunningAppProcessInfo记录的列表,如果没有正在运行的进程,则返回null(它不会返回空列表).未指定此列表排序.
返回当前正在运行的任务列表,其中最新的是第一个和更早的任务.请注意,"运行"并不意味着任何任务的代码当前已加载或活动 - 该任务可能已被系统冻结,因此可以在下次将其置于前台时以其先前状态重新启动.
更新:
现在任务和流程之间的区别.
在Android中,任务是一组或者你可以说是一系列活动.它完全与用户与这些活动的互动有关.Android在堆栈中维护这些活动,因此它们被打开并维护这个堆栈.可能是一个堆栈或多个堆栈,最后一个堆栈顶部打开的活动.并且它具有android维护系统的状态.应用程序有自己的任务,它打开了活动,如果新应用程序启动,系统会在LIFO结构中创建一个带有新活动的新任务.当用户在主屏幕上与此任务交互时,他只是导航到特定应用程序,此应用程序的任务现在变为前景.
虽然Process与Android应用程序组件有关.每个新的Android应用程序都在自己的用户空间中以新的Process(Linux Process)开始.默认情况下,所有应用程序组件都在相同的进 它作为单线程进程执行.这就是它被称为应用程序主线程的原因.但是在这里,您可以使用manifest属性为不同的Android应用程序组件定义单独的进程,例如Activity,Service,Provider或Broadcast Receiver android:process.Android Process与Linux Process with UserId具有相同的基础,因此您可以将在同一进程上运行的不同Android应用程序组件与相同的UserId组合在一起.
因此,当您调用getRunningAppProcesses()它时,它将为您提供与运行应用程序组件相关的所有运行Android应用程序的进程.
并getRunningTasks (int maxNum)在用户与应用程序交互时,为您提供系统为不同运行的应用程序创建的任务列表.
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |